4 ms·
Hi everyone, Maelstrom is a Rust test runner, built on top of a general-purpose clustered job runner. Maelstrom packages your Rust tests into hermetic micro-co
by nfachan 2y ago
Hi everyone,
Maelstrom is a Rust test runner, built on top of a general-purpose clustered job runner. 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, eliminating confusing errors caused by inter-test or implicit test-environment dependencies.
* It's scalable. Maelstrom can be run as a cluster. You can add more worker machines to linearly increase test throughput.
* It's fast. In most cases, Maelstrom is faster than cargo test, even without using 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 written in Rust.
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 in the near future. We have also provided tools for adventurous users to run arbitrary jobs, either using a command-line tool or a gRPC-based SDK.
Feedback and questions are welcome! Thanks for giving it a whirl.