madsim
Magical Deterministic Simulator for distributed systems in Rust. (by madsim-rs)
mainspring
A CPU simulator framework built around, and to support the other tools under, the constraints of the first principles of computing project. (by ncatelli)
madsim | mainspring | |
---|---|---|
5 | 1 | |
586 | 12 | |
1.9% | - | |
7.5 | 6.4 | |
12 days ago | 3 months ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
madsim
Posts with mentions or reviews of madsim.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-04-05.
-
On Implementation of Distributed Protocols
Being able to control nondeterminism is particularly useful for testing and debugging. This allows creating reproducible test environments, as well as discrete-event simulation for faster-than-real-time simulation of time delays. For example, Cardano uses a simulation environment for the IO monad that closely follows core Haskell packages; Sui has a simulator based on madsim that provides an API-compatible replacement for the Tokio runtime and intercepts various POSIX API calls in order to enforce determinism. Both allow running the same code in production as in the simulator for testing.
- Is Something Bugging You?
- Madsim: Magical Deterministic Simulator for distributed systems in Rust
- madsim: Magical Deterministic Simulator for distributed systems in Rust
-
Announcing Turmoil, a framework for testing distributed systems
How Turmoil different from madsim? Is Turmoil a successor of madsim?
mainspring
Posts with mentions or reviews of mainspring.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-11-24.
-
Interpreter in Rust
First off, awesome, interpreters and emulators are really fun projects. I've written a very similar project which might be useful for reference https://github.com/ncatelli/mainspring. As for parsing to your enum representation KerfuffleV2 gave a great example for nom. That being said, if you'd like to peek behind the curtain a bit for combinators and the principles behind nom, Bodil Stokke has a WONDERFUL tutorial on the topic https://bodil.lol/parser-combinators/ which will be directly applicable to what you are trying to do. Additionally, while targetted at using java, https://craftinginterpreters.com/ by Bob Nystrom is available for free online and covers the topic of writing really simple recursive decent parsers.
What are some alternatives?
When comparing madsim and mainspring you can also consider the following projects:
Hyperspeedcube - Modern, beginner-friendly 3D and 4D Rubik's cube simulator
visual-system-simulator - Framework for simulating deficiencies and other aspects of the human visual system
snmp-sim-rust - SNMP Simulator (Rust)
chumsky - Write expressive, high-performance parsers with ease.
TX-2-simulator - Simulator for the pioneering TX-2 computer
abn6502 - Solving the global IC shortage by reusing old stuff!
oxidizy - Life, in its smallest form.
name-needed - 🕹 A one man effort to produce an intuitive and high performance Dwarf Fortress-esque game. Needs a name.