Run spacecraft command sequences as WebAssembly modules instead of mission specific formats.
Sandbox untrusted or low trust code so it can run on board without risking flight software.
Stream a WebAssembly binary into the interpreter in chunks to keep peak memory usage low.
Test WASI 0.1 compatible WebAssembly programs locally using the included spacewasi tool.
| nasa/spacewasm | webstonehq/tuxedo | litellm-labs/litellm-agent-control-plane | |
|---|---|---|---|
| Stars | 1,335 | 1,201 | 1,069 |
| Language | Rust | Rust | Rust |
| Last pushed | — | 2026-07-01 | 2026-06-20 |
| Maintenance | — | Active | Maintained |
| Setup difficulty | hard | easy | moderate |
| Complexity | 5/5 | 2/5 | 4/5 |
| Audience | developer | developer | pm founder |
Figures from each repo's GitHub metadata at analysis time.
Aimed at resource-constrained flight software, understanding the memory and streaming constraints takes real study.
SpaceWasm is a NASA JPL project that lets spacecraft run WebAssembly programs on board, following the Wasm 1.0 specification. WebAssembly is a compact, sandboxed format for executable code that was originally built for web browsers, and this project adapts it so it can run safely inside flight software, the software that actually controls a spacecraft. The README explains the reasoning behind this choice in a few parts. High level spacecraft activities, like driving the Mars rover or checking temperature readings, are usually described as command sequences that live outside the core flight software, and different missions have historically built their own incompatible ways of doing this. Using WebAssembly gives them one shared standard instead. WebAssembly's sandboxing also means less trusted code can be uploaded and run on a spacecraft while flight software still limits what it can access and how much time or memory it can use, which can shorten the lengthy testing process usually needed before new autonomy software is allowed to fly. SpaceWasm has two main parts: a decoder and validator that reads a WebAssembly binary in small chunks and turns it into a form ready to execute, checking it for correctness as it goes rather than in a separate pass, and an interpreter that actually runs that code using a custom internal representation designed to be fast to execute rather than working directly on the original raw bytecode. Because it runs on spacecraft, SpaceWasm follows strict memory rules: memory is only ever allocated in fixed size blocks called pages, memory cannot be freed before it was allocated, sub regions inside a page cannot grow or shrink, memory use must be predictable ahead of time, and an allocation failure must never cause a crash. It also supports reading a WebAssembly binary in a streaming fashion, a chunk at a time, instead of requiring the whole file to sit in memory at once, since spacecraft systems typically have small, fixed memory budgets. A companion tool called spacewasi lets you run WASI compatible WebAssembly programs from the command line for testing. SpaceWasm is released under the Apache 2.0 license.
A NASA JPL WebAssembly interpreter built to run sandboxed code safely on board spacecraft, with strict memory rules for flight software.
Mainly Rust. The stack also includes Rust, WebAssembly.
Use freely for any purpose, including commercial use, as long as you keep the copyright and license notices.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.