Intercept, delay, drop, and jitter local TCP/UDP packets in real-time. Test how your APIs, WebSockets, and distributed microservices survive spotty subway tunnels and flaky networks with zero proxy overhead.
Hooks directly into the OS network stack via low-level WinDivert kernel drivers. Intercepts raw IPv4/IPv6 TCP, UDP, and ICMP frames before socket buffering occurs.
Asynchronous channel buffers hold delayed packets in user space without thread blocking or OS context-switch overhead.
Target specific local ports (e.g. 3000, 8080, 5000) or individual process IDs so you can stress test your staging service without degrading Spotify or Slack.
# 1. Install directly with Rust / Cargo
cargo install --git https://github.com/bhavukar/network-relay.git
# 2. Start simulating spotty subway network on port 3000 (Run as Administrator)
subway-sim start --port 3000 --profile subway
# 3. Or pass custom latency and packet drop rates directly
subway-sim start --port 8080 --latency 1500 --drop 15
Catch race conditions, timeout cascades, and retry loop storms before your users do. 100% Free and Open Source under the MIT License.