Freedom251 › Network Simulation Software
Shadow

What Shadow is
Shadow is a free Linux tool for researching, developing, testing, and evaluating real networked applications inside simulated networks. It runs unmodified application binaries as native Linux processes within a discrete-event simulation, then connects them through a private virtual network supporting protocols such as TCP and UDP. A configurable network graph can model path latency, packet loss, and routing conditions. Because experiments are deterministic, users can rerun a simulation to reproduce a bug and control variables. Shadow says it can represent distributed systems with thousands of network-connected processes on a Linux laptop, desktop, or server. Simulations are segregated from the Internet, but the project warns that Shadow is not intended to isolate malicious programs, which may access host files or make native system calls. More than 150 system-call API functions are implemented, though unsupported or complex application features may fail. Large-scale Tor simulations are particularly well supported. The software is open source, primarily written in Rust and C.
Who it suits
Shadow suits Linux researchers and developers who need controlled, repeatable network simulations, including large-scale Tor studies. It is also relevant for testing distributed applications against configurable latency and packet loss.
What it does well
- Runs unmodified Linux application binaries
- Deterministic simulations support bug reproduction
- Models latency and packet loss
- Can simulate thousands of processes
- 100% open-source software
What to know first
- Linux-only platform
- Not designed to isolate malicious programs
- Unsupported system calls may cause failures
- Building requires several Linux dependencies
Limits
Shadow implements over 150 system-call API functions, but applications using unsupported or complex features may not work correctly. It has no real-time emulation.
Getting started
- Use a Linux laptop, desktop, or server
- Install development dependencies including GCC, Python, GLib, CMake, and Rustup
- Build or install Shadow from its open-source project
- Configure a simulated network graph with desired conditions
- Run an experiment with managed application processes
Verdict
Shadow combines real application execution with a private, configurable simulated network. Its deterministic model and scale fit research and testing, but users must account for security limitations and incomplete system-call coverage.
Questions
Is Shadow free and open source?
Yes. Shadow is free and described as 100% open-source software written primarily in Rust and C.
Which platform does Shadow support?
Shadow runs on Linux, including laptops, desktops, and servers.
What applications does it run?
It runs real, unmodified application binaries as native Linux processes inside a discrete-event simulation.
Does Shadow connect simulations to the Internet?
No. Simulations use a private virtual network segregated from the Internet.
What support channels are available?
The project directs users to GitHub Discussions for community support and GitHub Issues for bug reports.
Facts from Shadow's own pages
- Configurable networks
- A configurable network graph models characteristics such as path latency and packet loss. · shadow.github.io, 8 Oct 2026
- Dependencies
- Building Shadow requires Linux development dependencies including GCC, Python, GLib, CMake, and Rustup. · shadow.github.io, 8 Oct 2026
- Deterministic experiments
- Experiments can be scientifically controlled and deterministically replicated to help reproduce bugs and reduce confounding factors. · shadow.github.io, 8 Oct 2026
- Example workflow
- The basic example simulates an HTTP server and three clients making requests across virtual hosts. · shadow.github.io, 8 Oct 2026
- Execution model
- Shadow runs real, unmodified application binaries as native Linux processes in a discrete-event simulation. · shadow.github.io, 8 Oct 2026
- Network controls
- Shadow models routing characteristics such as path latency and packet loss using a configurable network graph. · shadow.github.io, 8 Oct 2026
- Network model
- Shadow connects managed applications through an internal simulated network with protocols such as TCP and UDP. · shadow.github.io, 8 Oct 2026
- Network simulation
- It connects managed processes through a private virtual network and simulates protocols including TCP and UDP. · shadow.github.io, 8 Oct 2026
- Open source
- The project describes Shadow as 100% open-source software written primarily in Rust and C. · shadow.github.io, 8 Oct 2026
- Privacy
- Shadow says simulations are private and segregated from the Internet. · shadow.github.io, 8 Oct 2026
- Purpose
- Shadow is a scientific experimentation tool for research, development, testing, and evaluation of real networked applications on simulated networks. · shadow.github.io, 8 Oct 2026
- Real application execution
- It runs unmodified application binaries as native Linux processes inside a discrete-event simulation. · shadow.github.io, 8 Oct 2026
- Reproducibility
- Shadow experiments are deterministic, so bugs can be reproduced by rerunning a simulation. · shadow.github.io, 8 Oct 2026
- Scale
- Shadow says it can simulate distributed systems with thousands of network-connected processes on a Linux laptop, desktop, or server. · shadow.github.io, 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. · github.com, 8 Oct 2026
- Source code
- Shadow is 100% open-source software written primarily in Rust and C. · shadow.github.io, 8 Oct 2026
- Support
- The project directs users to GitHub Discussions for community support and GitHub Issues for bug reports. · github.com, 8 Oct 2026
- Supported use case
- The documentation says large-scale Tor network simulations are a particularly well-supported use case. · shadow.github.io, 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. · shadow.github.io, 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. · shadow.github.io, 8 Oct 2026
- Testing and debugging
- The project describes using large, diverse test networks to exercise corner cases and improve test coverage. · shadow.github.io, 8 Oct 2026
- Tor use case
- The documentation says large-scale Tor network simulations are a particularly well-supported use case. · shadow.github.io, 8 Oct 2026
Where Shadow stands on Freedom251
- Network Simulation Software#24 of 31
- Network Testing Software#27 of 33