- Home
- Chaos Engineering Platforms
- Toxiproxy
Toxiproxy
What it is
Toxiproxy is a free TCP proxy for testing how applications handle network and system problems in development, CI, and testing environments. Applications route test connections through it, then users adjust connection behavior through an HTTP API or command-line interface. Built-in toxics can introduce latency or jitter, restrict bandwidth, delay socket closure, time out or reset connections, slice TCP data, limit transmitted data, and drop packets. Tests can use deterministic changes or randomized behavior. The API manages proxies and toxics, resets proxies, and provides version information and Prometheus-compatible metrics. It listens on port 8474; a proxy configured with listen port 0 receives an ephemeral port. Client libraries are listed for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir. The project offers Linux packages and binaries, macOS installation through Homebrew or MacPorts, a Windows download, a container image, and source builds with Go. The repository identifies its license as MIT. Version 2.x changed the API incompatibly with 1.x, so the client library must support the server version in use.
For and against
For
- Free and open source under MIT
- Can inject latency, jitter, bandwidth limits, and packet loss
- Provides an HTTP API and command-line interface
- Offers client libraries in multiple languages
Against
- HTTP API is unauthenticated by default
- Version 2.x is API-incompatible with version 1.x
- Project advises against exposing the API to untrusted networks
The verdict
Toxiproxy offers a configurable way to introduce network faults into test connections. Take care to protect its API and match client libraries to the server version.
Who it suits
Toxiproxy suits developers and teams checking service failure handling in development, tests, and CI. Its TCP proxy and configurable connection behavior are intended for testing application resilience.
Plans and prices
Toxiproxy
Open source TCP proxy; MIT license
Read 7 Oct 2026 · github.com
On the record
- API
- The HTTP API supports creating, updating, listing, and deleting proxies and toxics, resetting proxies, and retrieving version and Prometheus-compatible metrics.github.com · read 7 Oct 2026
- Client integrations
- The README lists client libraries for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir.github.com · read 7 Oct 2026
- Compatibility limit
- Version 2.x has API changes that make it incompatible with version 1.x, so the client library must support the server version in use.github.com · read 7 Oct 2026
- Connection control
- Applications route test connections through Toxiproxy, whose connection behavior can then be manipulated over HTTP.github.com · read 7 Oct 2026
- Deployment
- The project provides Linux packages and binaries, macOS installation through Homebrew or MacPorts, a Windows download, a GitHub Container Registry image, and a source build option.github.com · read 7 Oct 2026
- Determinism and chaos
- The README describes deterministic connection tampering as well as randomized chaos and customization.github.com · read 7 Oct 2026
- Deterministic and randomized testing
- Toxiproxy supports deterministic connection tampering as well as randomized behavior through toxic settings such as jitter, packet loss, and toxicity probability.github.com · read 7 Oct 2026
- How it works
- Applications route test connections through the proxy and manipulate connection health through its HTTP API.github.com · read 7 Oct 2026
- Install options
- The README documents Linux packages and binaries, Homebrew and MacPorts for OS X, a Windows download, a GitHub Container Registry image, and building from source with Go.github.com · read 7 Oct 2026
- Intended audience
- The README presents Toxiproxy as a way to test that applications do not have single points of failure.github.com · read 7 Oct 2026
- Intended users
- The project is aimed at developers and teams testing service failure handling in development, unit and integration tests, and CI.github.com · read 7 Oct 2026
- Interfaces
- The project provides a TCP proxy, an HTTP API, and a command-line interface for managing proxies and toxics.github.com · read 7 Oct 2026
- Language clients
- The README lists client libraries for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir.github.com · read 7 Oct 2026
- License
- The GitHub repository identifies the project license as MIT.github.com · read 7 Oct 2026
- Metrics
- Toxiproxy exposes Prometheus-compatible metrics through its HTTP API at /metrics.github.com · read 7 Oct 2026
- Network conditions
- Built-in toxics can add latency or jitter, limit bandwidth, delay socket closure, time out or reset connections, slice TCP data, limit transmitted data, and drop packets.github.com · read 7 Oct 2026
- Open source license
- The repository identifies its license as MIT.github.com · read 7 Oct 2026
- Operational note
- The README advises using ports outside the ephemeral port range to avoid random port conflicts.github.com · read 7 Oct 2026