no_std version of xDEVS for Rust.
This crate is mainly focused on enabling the execution of Real-Time simulations on embedded devices. This allows a robust Model-Based design approach, from a mathematical model to a real IoT application.
no_stdfirst — zero heap allocations by default make the simulator compatible with any target.- Performant - test it by yourself using the built-in DEVStone benchmark implementation.
- Real-Time guarantees - for critical IoT applications in which timing is key.
asyncsupport - seamless interaction between your simulation and external tasks.- Extra tools for the most popular executors — choose between
std(Tokio) andembassybackends.
| Feature | Description |
|---|---|
std |
Tokio-based async backend. Enables heap-allocated (alloc) variants. |
embassy |
Embassy-based async backend for bare-metal targets. |
alloc |
Enables Box of DEVS models and Box-based DEVStone models. |
rayon |
Parallel simulation of independent components (arrays/tuples/struct fields). Implies std; components must be Send. |
Both std and embassy enable executor-dependent tools. They are mutually exclusive and interchangeable.
There is still a lot of work to do! However, we already proved the effectiveness of this simulator.
- R. Cárdenas, P. Malagón, P. Arroba and J. L. Risco-Martín, "xDEVS no_std: A Rust Crate for Real-Time DEVS on Embedded Systems," 2024 Annual Modeling and Simulation Conference (ANNSIM), Washington D.C., USA, 2024, pp. 1-13.
Licensed under GPL-3.0-or-later.