About Maelstrom
Maelstrom packages your Rust tests into hermetic micro-containers, then distributes them to be run on an arbitrarily large cluster of test-runners, or locally on your machine. You might use Maelstrom to run your tests because:
- It's easy. Maelstrom functions as a drop-in replacement for cargo-test, so in most cases, it just works.
- It's reliable. Maelstrom runs every test hermetically in its own lightweight container and runs each test independently, eliminating confusing errors caused by inter-test or implicit test-environment dependencies.
- It's scalable. You can run Maelstrom as a cluster. Add more worker machines to linearly improve test throughput.
- It's fast. In most cases, Maelstrom is faster than cargo test, even without adding clustering.
- It's clean. Maelstrom has a from-scratch, rootless container implementation (not relying on docker or RunC), optimized to be low-overhead and start quickly.
- It's Rusty. The whole project is built in Rust.
Maelstrom is currently available for Rust on Linux. C++, Typescript, Python, and Java are coming soon.
We started with a Rust test runner, but Maelstrom's underlying job execution system is general-purpose. We will add support for other languages' test frameworks throughout 2024. We have also provided tools for adventurous users to run arbitrary jobs, either using a command-line tool or a gRPC-based SDK.
The project is currently Linux-only (x86 and ARM), as it relies on namespaces to implement containers.
See the book for more information: