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 suboIf you use Linux or otherwise prefer to build from source, simply clone this repository or download a source code release archive and run:
make suboThis 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 --helpTo 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.
