Today, we are happy to announce the initial release of turmoil, a framework for developing and testing distributed systems. Testing distributed systems is hard. Non-determinism is everywhere (network, time, threads, etc.), making reproducible results difficult to achieve. Development cycles are lengthy due to deployments. All these factors slow down development and make it difficult to ensure system correctness. turmoil strives to solve these problems by simulating hosts, time and the network. This allows for an entire distributed system to run within a single process on a single thread, achieving deterministic execution. We also provide fine grain control over the network, with support for dropping, holding and delaying messages between hosts. This crate is still experimental. Your use cases and feedback are invaluable in guiding our development. Please file issues and ping us on Discord in #turmoil-simulation. Happy testing!