Afterburner is a sandboxed, deterministic WebAssembly runtime designed to safely run untrusted scripts, plugins, and agent logic. It compiles multiple languages to WebAssembly and runs them on the same engine, without needing to install a separate runtime for each language.
Key capabilities
- Multi-language support: Supports languages such as C, Rust, Go, TypeScript, and Python compiled to WebAssembly, and they can run side by side in the same runtime.
- Sandboxed by default: Programs start with no filesystem, network, or environment access; capabilities are granted on demand via parameters such as --allow-fs, --allow-net, and --allow-env.
- Deterministic execution: Canonical NaN, fixed relaxed-SIMD results, disabled threads, and fuel metering ensure that the same module produces byte-for-byte identical results on different CPUs.
- Resource limits: Provides a deterministic instruction budget (fuel), a hard memory cap, and a wall-clock timeout to prevent infinite loops or memory overflow from affecting the host.
- Package format and registry: The .afb package format is based on SHA-256 content addressing and supports commands such as burn publish, burn install, burn add, and burn search, with dependencies pinned by digest.
- Compilation and execution: burn compile compiles a program into a single portable wasm artifact, and burn run can execute it anywhere without recompilation or configuration.
Usage After installing the binary, you can operate it via the burn command:
- burn compile compiles a program into a portable artifact.
- burn run runs a module or package.
- burn new scaffolds a project.
- burn package packages it as .afb.
- burn publish / burn install publishes or installs a package.
- burn repl --lang rust|go|c|cpp|ts|js opens the REPL for the corresponding language. You can pin the version via BURN_VERSION and specify the installation directory via BURN_INSTALL.
Use cases
- Running untrusted code: Run code you do not fully trust, such as user-submitted scripts or code generated by AI agents.
- Multi-language plugin systems: Let customers extend your product with Rust, Go, C, TypeScript, or Python, with all plugins running under restrictions in the same sandbox.
- Reproducible data processing: Publish data transformation logic as packages to ensure the same input produces the same output on different machines.
- Restricted compute processors: Each request runs by default in a closed environment, outbound HTTP requires an allowlist, and the filesystem is disabled by default.
- Secure scriptable steps: Replace ad hoc shell scripts with version-pinned, capability-controlled packages.
- AI agent sandbox: Unknown code generated by agents runs in a sealed environment with no network or filesystem permissions until explicitly granted.
Limitations
- Details such as the specific scope of language support, platform compatibility, and performance data are not yet provided.
- Commercial information such as fees and pricing is not yet provided.