Shadow
Shadow is free, open-source Linux software for researching, developing, testing, and evaluating real networked applications in simulated networks.
What Shadow is
Shadow is free, open-source Linux software for researching, developing, testing, and evaluating real networked applications in simulated networks. It runs unmodified application binaries as native Linux processes inside a discrete-event simulation and connects them through a private virtual network supporting protocols such as TCP and UDP. A configurable network graph models path latency, packet loss, and routing conditions. Experiments are deterministic, allowing repeated simulations to reproduce bugs and control confounding factors. Shadow says it can simulate distributed systems with thousands of network-connected processes on a Linux laptop, desktop, or server. Large-scale Tor simulations are particularly well supported. More than 150 system call API functions are implemented, though applications using unsupported or complex features may fail. Simulations are segregated from the Internet, but malicious programs are not isolated from host resources.
Good
- Runs unmodified Linux application binaries
- Models TCP and UDP networks
- Deterministic experiments aid bug reproduction
- Simulates thousands of networked processes
- 100% open-source software
Watch out
- Linux-only platform
- Unsupported system calls may break applications
- Malicious programs may access host files
- Requires Linux development dependencies to build
Who it suits
Shadow suits researchers and developers working with Linux networked applications, distributed systems, or large Tor simulations. It is intended for controlled, repeatable experimentation rather than real-time emulation.
Verdict
Shadow provides deterministic network simulation while executing real application binaries, with configurable latency and packet loss. Its Linux focus, system-call limits, and security caveat should be considered before using it with complex or untrusted software.
The facts
Each one read from Shadow's own pages, with the date it was checked.
What it does
- Configurable networks
- A configurable network graph models characteristics such as path latency and packet loss.checked 8 Oct 2026
- Dependencies
- Building Shadow requires Linux development dependencies including GCC, Python, GLib, CMake, and Rustup.checked 8 Oct 2026
- Deterministic experiments
- Experiments can be scientifically controlled and deterministically replicated to help reproduce bugs and reduce confounding factors.checked 8 Oct 2026
- Example workflow
- The basic example simulates an HTTP server and three clients making requests across virtual hosts.checked 8 Oct 2026
- Execution model
- Shadow runs real, unmodified application binaries as native Linux processes in a discrete-event simulation.checked 8 Oct 2026
- Network controls
- Shadow models routing characteristics such as path latency and packet loss using a configurable network graph.checked 8 Oct 2026
- Network model
- Shadow connects managed applications through an internal simulated network with protocols such as TCP and UDP.checked 8 Oct 2026
- Network simulation
- It connects managed processes through a private virtual network and simulates protocols including TCP and UDP.checked 8 Oct 2026
- Open source
- The project describes Shadow as 100% open-source software written primarily in Rust and C.checked 8 Oct 2026
- Privacy
- Shadow says simulations are private and segregated from the Internet.checked 8 Oct 2026
- Purpose
- Shadow is a scientific experimentation tool for research, development, testing, and evaluation of real networked applications on simulated networks.checked 8 Oct 2026
- Reproducibility
- Shadow experiments are deterministic, so bugs can be reproduced by rerunning a simulation.checked 8 Oct 2026
- Scale
- Shadow says it can simulate distributed systems with thousands of network-connected processes on a Linux laptop, desktop, or server.checked 8 Oct 2026
- 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.checked 8 Oct 2026
- Source code
- Shadow is 100% open-source software written primarily in Rust and C.checked 8 Oct 2026
- Support
- The project directs users to GitHub Discussions for community support and GitHub Issues for bug reports.checked 8 Oct 2026
- Supported use case
- The documentation says large-scale Tor network simulations are a particularly well-supported use case.checked 8 Oct 2026
- 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.checked 8 Oct 2026
- System call support
- Shadow implements over 150 system call API functions, but applications using unsupported or complex features may not work correctly.checked 8 Oct 2026
- Testing and debugging
- The project describes using large, diverse test networks to exercise corner cases and improve test coverage.checked 8 Oct 2026
- Tor use case
- The documentation says large-scale Tor network simulations are a particularly well-supported use case.checked 8 Oct 2026
Where it runs
- Real application execution
- It runs unmodified application binaries as native Linux processes inside a discrete-event simulation.checked 8 Oct 2026
Alternatives to Shadow
- 1

PingPlotter
Free planiOSWebAPILinux8.2From $6.99 a month - 2
iPerf2
Free planOpen sourceAndroidiOSLinuxmacOS7.8Free plan - 3

GitHub CodeQL
Free planWebExtensionLinuxmacOS7.5From $30 a month - 4
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 5

EVE-NG
Free planWebLinuxmacOSSelf-hosted7.0Free plan - 6

Netpicker
Free planWebAPILinuxSelf-hosted6.8From $7,500 a year
