A Rust toolbox for building distributed systems with deterministic simulation testing, inspired by FoundationDB's simulation testing approach.
Note: This is currently a hobby-grade project under active development.
Moonpool provides a comprehensive framework for developing and testing distributed systems through deterministic simulation. Write your distributed system once and test it with simulated networking for predictable debugging, then deploy with real networking - all using the same code.
- Deterministic Simulation - Reproducible testing with controlled time and event ordering
- Network Abstraction - Seamlessly swap between simulated and real networking
- Buggify Chaos Testing - FoundationDB-style deterministic fault injection
- Actor-Based Architecture - Event-driven peer networking with backoff and reliability
- Statistical Testing - Run multiple iterations with comprehensive reporting
- Single-Core Design - Simplified async without thread-safety complexity
- ✅ Provider Traits - Complete abstraction layer (Network, Time, Task)
- ✅ Buggify System - Deterministic fault injection framework
- ✅ Sometimes Assert - Statistical assertion coverage for chaos testing
- ✅ TCP with Buggify - Connection management with chaos testing
- ✅ Actor-based Peer - Event-driven networking with reliability
- ✅ Ping Pong Actor - DST-enabled test actor for active bug discovery
# Enter development environment
nix develop
# Run all validation checks
nix develop --command cargo fmt
nix develop --command cargo clippy
nix develop --command cargo nextest run
# Build the project
nix develop --command cargo build
moonpool-simulation/
- Core simulation frameworkdocs/specs/
- Technical specificationsdocs/plans/
- Implementation roadmaps
Apache 2.0