#deterministic #simulation #testing

turmoil

Simulation testing framework for distributed systems

12 unstable releases (4 breaking)

new 0.5.4 May 24, 2023
0.5.3 Mar 23, 2023
0.5.0 Feb 8, 2023
0.3.3 Dec 7, 2022
0.3.2 Nov 14, 2022

#520 in Network programming

Download history 44/week @ 2023-02-04 18/week @ 2023-02-11 22/week @ 2023-02-18 61/week @ 2023-02-25 16/week @ 2023-03-04 166/week @ 2023-03-11 47/week @ 2023-03-18 650/week @ 2023-03-25 498/week @ 2023-04-01 444/week @ 2023-04-08 946/week @ 2023-04-15 816/week @ 2023-04-22 780/week @ 2023-04-29 693/week @ 2023-05-06 464/week @ 2023-05-13 786/week @ 2023-05-20

3,076 downloads per month
Used in 4 crates (2 directly)

MIT license

115KB
2.5K SLoC

Turmoil

This is very experimental

Add hardship to your tests.

Turmoil is a framework for testing distributed systems. It provides deterministic execution by running multiple concurrent hosts within a single thread. It introduces "hardship" into the system via changes in the simulated network. The network can be controlled manually or with a seeded rng.

Crates.io Documentation Build Status Discord chat

Quickstart

Add this to your Cargo.toml.

[dev-dependencies]
turmoil = "0.5"

See crate documentation for simulation setup instructions.

Examples

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in turmoil by you, shall be licensed as MIT, without any additional terms or conditions.

Dependencies

~9–15MB
~253K SLoC