The following guide will help you install the tooling and spin up an Atmo instance on your computer for local development.
As of the time of writing,
subo does not officially support the Windows operating system. You may, however, try installing and using
subo on WSL2.
First, you will need to have the subo CLI and Docker installed.
- Docker will be used to build Runnables and run the Atmo development server.
- To install subo, visit its GitHub repository and follow the instructions in the README.
Creating a Project
With subo installed, you can now create a project:
subo create project important-api
In the Directive file, you'll see a handler set up for you that
POST /hello route using the
# the Directive is a complete description of your application, including all of its business logic.
# appVersion should be updated for each new deployment of your app.
# atmoVersion declares which version of Atmo is used for the `subo dev` command.
- type: request
- fn: helloworld
Building and Running
subo command line tool is used again here to build and run your Atmo project.
important-api directory run:
subo build .
This automatically compiles each of your Runnables in a Docker container and bundles
them together in
runnables.wasm.zip to be used in Atmo.
⏩ START: building Runnables in .
ℹ️ 🐳 using Docker toolchain
⏩ START: building Runnable: helloworld (rust)
Updating crates.io index
✅ DONE: Bundle was created -> runnables.wasm.zip @ v0.1.0
If you prefer not to use Docker, you can also build your Runnables natively.
Running a development server
Now that we have our application Bundle built, we can start a development server.
important-api directory, run:
This creates a Docker container running Atmo, copies your
the container, and starts an Atmo server listening on
You can test the
/hello route in a second terminal by sending a POST request
with a body to it:
curl localhost:8080/hello -d 'from the Kármán line!'
Atmo runs and responds successfuly if you get a 200 OK response with the request body replayed to you in the response.