Sandbox
Frontend
Frontend sandbox runs in the browser window using <iframe> tag, with all
JS scripts, CSS files and main.wasm loaded as blobs.
During loading process, Play Seed would process links to JS files
from .play-seed/main.html and substitutes their src to blob url.
Then JS files would be processed recursively, so if one file uses import
to connect another file, it would also be loaded.
CSS loading is currently simpler and in case if CSS file links
another file, it would be ignored. CSS files are loaded by href attribute
in <link> of .play-seed/main.html.
Backend
Backend build sandbox using docker to compile sources you've entered under src folder.
Only this folder would be mounted to docker container.
Everything outside it, would be ignored during build. This also includes, for example Cargo.toml.
Backend would use it's own Cargo.toml and does not allow currently to change it.
Same goes for build.rs.
Build would call wasm-pack command with debug mode enabled (because it is the fastest currently).
The whole compilation would timeout of after about 20 seconds. If timeouted, you might see some unclear
error output. In addition to timeout, backend applies rate limiting, when no more than 3 in-flight requests
are allowed in general.
Dependencies
Currently Cargo.toml has a number of precompiled dependencies, which could be used in the code. You can see
current version in the sources here.
As of now there's no way to add anything to these dependencies except make merge request to that file.
Before doing that, you might want to communicate with me (see Contacts).