# shadow/shadow

Shadow is a discrete-event network simulator that directly executes real application code, enabling you to simulate distributed systems with thousands of network-connected processes in realistic and scalable private network experiments using your laptop, desktop, or server running Linux.

Repository: https://github.com/shadow/shadow
Canonical: https://ross.abutalabs.com/products/shadow-shadow
Homepage: https://shadow.github.io
Language: Rust
License: NOASSERTION
License Family: other
Topics: emulation, simulation, networking, experimentation, tor, science-research, scientific-computing, scalability, realism, control
Last push: 2026-08-24T04:43:44+00:00

## Health v2 (maintenance only)
Score: 72/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 20, longevity 100
- inputs: {"age_days": 5587, "days_push": 9, "days_rel": 321, "gap_med": null, "n_releases_24m": 1}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1719, forks 281 (observed 2026-08-28T04:05:26.677868+00:00)

## What it is
Shadow is a discrete-event network simulator that directly executes real, unmodified application code as native Linux processes, interposing at the system call API to connect them through a simulated private network. It enables realistic, scalable, and deterministically reproducible experiments with distributed systems of thousands of network-connected processes.

## Use cases
- simulate distributed systems with thousands of networked processes on a laptop
- reproduce network bugs deterministically by re-running simulations
- test and evaluate Tor or other privacy networks in a private environment
- prototype and benchmark network protocols without deploying to a live network
- run large test networks to exercise corner cases and improve coverage
- evaluate application performance under configurable latency and packet loss

## When to choose
- you need application-layer realism by running real unmodified binaries
- you need deterministic, replicable network experiments for research
- you need to scale beyond real-time emulators like mininet
- you want private, Internet-segregated experiments for safety and privacy

## When to avoid
- your application uses complex or unsupported system call features
- you need real-time emulation on real OS kernels instead of simulation
- you need a non-Linux platform, since Shadow only runs on Linux
- you only need simple packet-level simulation without running real apps

## Facets
- artifact type: application
- maturity: active
- function: simulation, networking, developer-tools, testing
- domain: networking, microservices, developer-tools
- platform: cli
- tags: discrete-event-simulation, network-emulation, tor, scientific-research, deterministic-experiments, syscall-interposition, research, linux

## Member repositories
- shadow/shadow (main) score 72

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:26.677868+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:34:08.482036+00:00, confidence not recorded.
  - readme: https://github.com/shadow/shadow (fetched 2026-08-28T04:05:26.677868+00:00, sha 783e2294b143)
  - homepage: https://shadow.github.io (fetched 2026-08-29T11:10:03.147359+00:00, sha d8c1af03b7d4)
- Data as of 2026-08-30T08:39:29.467469+00:00.
