Hermit is a powerful tool that ensures deterministic execution of programs by isolating them from sources of non-determinism like time and random number generation. It can be used for concurrency stress testing, reproducible builds, and diagnosing concurrency bugs. Hermit uses a pseudorandom number generator to replace random bytes, ensuring consistent program output. By controlling how threads are scheduled, Hermit makes sure that the program runs the same way every time. It can be built using Rust cargo tool and offers features like replay debugging and chaos mode for controlled exposure of concurrency bugs. Hermit is ideal for diagnosing concurrency bugs by identifying order violation bugs.
https://github.com/facebookexperimental/hermit