smolvm machine provider reaches a running
smolvm microVM, by name, and the machine runtime
runs captured programs in it. Each machine has its own guest kernel, on macOS, Linux and
Windows. You create and start the machine; Mirage only runs programs in it.
Python SDK and Node.
Installation
Install thesmolvm CLI. Create and start a machine from an image that
has what connecting the workspace needs:
Usage
captures defaults to @external:
every program Mirage does not have itself. Name @python to run
Python in the machine too.
- Python
- TypeScript
- YAML
Connecting the workspace
A program in the machine opens workspace files at the same paths as in Mirage, so the machine must see the mounts there.mount_type picks how, as
for Docker:
ssh serves every mount over smolvm machine exec (the guest needs
sshfs), fuse leaves them to a Mirage inside, and both mixes the two.
For fuse, use the machine image,
which carries Mirage and fuse3. Write the same mounts at the same paths
into sandbox.yaml, put it in the machine (in its image, or a directory
passed with --volume), and start Mirage with it:
- This workspace’s mount modes and permissions do not reach those files;
sandbox.yamldecides. - Keep the machine’s paths in step with the host’s mounts yourself.
Runtime behavior
Notes
- The machine must be
running. Start astoppedorcreatedmachine, or clone afrozenmachine before using it. Mirage cannot run commands while a machine isunreachable. - Lines sent to one machine share its files and processes. Give each tenant its own machine.