Subo is the command-line helper for working with the Suborbital Development Platform. Subo is used to build Wasm modules, generate new projects and config files, and more over time.
You do not need to install language-specific tools to get started with WebAssembly and Subo! A Docker toolchain is supported (see below) that can build your plugins without needing to install language toolchains.
If you're on Mac (M1 or Intel), the easiest way to install is via brew
:
brew tap suborbital/subo
brew install subo
If you use Linux or otherwise prefer to build from source, simply clone this repository or download a source code release archive and run:
make subo
This will install subo
into your GOPATH ($HOME/go/bin/subo
by default) which you may need to add to your shell's $PATH
variable.
Subo does not have official support for Windows.
Verify subo was installed:
subo --help
To get started with Subo, visit the Get started guide.
This repo contains builders for the various languages supported by Wasm modules. A builder is a Docker image that can build code into Wasm modules, and is used internally by subo
to build your code! See the builders directory for more.
The subo
tool supports the following platforms and operating systems:
x86_64 | arm64 | |
---|---|---|
macOS | ✅ | ✅ |
Linux | ✅ | ✅ |
Windows* | — | — |
*On Windows you can use WSL.
The language toolchains used by subo
support the following platforms:
x86_64 | arm64 | Docker | |
---|---|---|---|
Rust | ✅ | ✅ | ✅ |
JavaScript | ✅ | ✅ | ✅ |
TypeScript | ✅ | ✅ | ✅ |
TinyGo | ✅ | ✅ | ✅ |
Grain | ✅ | ✅ | ✅ |
AssemblyScript | ✅ | ✅ | ✅ |
Swift | ✅ | — | 🟡 (no arm64) |
Please read the contributing guide to learn about how you can contribute to Subo! We welcome all types of contribution.
By the way, Subo is also the name of our mascot, and it's pronounced SOO-bo.
Copyright © 2021-2022 Suborbital and contributors.