Shadow
shadow.github.io
Spec sheet
- Purpose
- Shadow is a scientific experimentation tool for research, development, testing, and evaluation of real networked applications on simulated networks.Read 8 Oct 2026 · shadow.github.io
- Privacy
- Shadow says simulations are private and segregated from the Internet.Read 8 Oct 2026 · shadow.github.io
- Support
- The project directs users to GitHub Discussions for community support and GitHub Issues for bug reports.Read 8 Oct 2026 · github.com
- Configurable networks
- A configurable network graph models characteristics such as path latency and packet loss.Read 8 Oct 2026 · shadow.github.io
- Dependencies
- Building Shadow requires Linux development dependencies including GCC, Python, GLib, CMake, and Rustup.Read 8 Oct 2026 · shadow.github.io
- Deterministic experiments
- Experiments can be scientifically controlled and deterministically replicated to help reproduce bugs and reduce confounding factors.Read 8 Oct 2026 · shadow.github.io
- Example workflow
- The basic example simulates an HTTP server and three clients making requests across virtual hosts.Read 8 Oct 2026 · shadow.github.io
- Execution model
- Shadow runs real, unmodified application binaries as native Linux processes in a discrete-event simulation.Read 8 Oct 2026 · shadow.github.io
- Network controls
- Shadow models routing characteristics such as path latency and packet loss using a configurable network graph.Read 8 Oct 2026 · shadow.github.io
- Network model
- Shadow connects managed applications through an internal simulated network with protocols such as TCP and UDP.Read 8 Oct 2026 · shadow.github.io
- Network simulation
- It connects managed processes through a private virtual network and simulates protocols including TCP and UDP.Read 8 Oct 2026 · shadow.github.io
- Open source
- The project describes Shadow as 100% open-source software written primarily in Rust and C.Read 8 Oct 2026 · shadow.github.io
- Real application execution
- It runs unmodified application binaries as native Linux processes inside a discrete-event simulation.Read 8 Oct 2026 · shadow.github.io
- Reproducibility
- Shadow experiments are deterministic, so bugs can be reproduced by rerunning a simulation.Read 8 Oct 2026 · shadow.github.io
- Scale
- Shadow says it can simulate distributed systems with thousands of network-connected processes on a Linux laptop, desktop, or server.Read 8 Oct 2026 · shadow.github.io
- Security caveat
- Shadow's security policy warns that it is not designed to isolate potentially malicious programs, which may access host files or issue native system calls.Read 8 Oct 2026 · github.com
- Source code
- Shadow is 100% open-source software written primarily in Rust and C.Read 8 Oct 2026 · shadow.github.io
- Supported use case
- The documentation says large-scale Tor network simulations are a particularly well-supported use case.Read 8 Oct 2026 · shadow.github.io
- System call limits
- Shadow implements over 150 system call API functions but does not yet fully support all API features, so applications using more complex features may not work correctly.Read 8 Oct 2026 · shadow.github.io
- System call support
- Shadow implements over 150 system call API functions, but applications using unsupported or complex features may not work correctly.Read 8 Oct 2026 · shadow.github.io
- Testing and debugging
- The project describes using large, diverse test networks to exercise corner cases and improve test coverage.Read 8 Oct 2026 · shadow.github.io
- Tor use case
- The documentation says large-scale Tor network simulations are a particularly well-supported use case.Read 8 Oct 2026 · shadow.github.io
Where Specifiction places it
- Network Testing Software#29 of 336.8
- Network Simulation Software#31 of 316.7