Skip to content
SPECIFICTION
Get listed

Toxiproxy

github.com

Free plan WindowsmacOSLinuxAPISelf-hosted
Visit github.com
Spec score 8.2 #8 of 25 in Chaos Engineering Platforms

What it is

Toxiproxy is a free, open-source TCP proxy for testing how software responds to network and system problems in development, testing, and CI. Applications route test connections through it, then users change connection behavior through an HTTP API or command-line interface. Built-in toxics can add latency or jitter, restrict bandwidth, delay socket closure, time out or reset connections, slice TCP data, limit transmitted data, or drop packets. Settings support deterministic connection changes as well as randomized chaos. The API manages proxies and toxics, resets proxies, and returns version information and Prometheus-compatible metrics. It listens on port 8474; configuring a proxy with listen port 0 assigns an ephemeral port. Client libraries are listed for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir. Installation options include Linux packages and binaries, Homebrew and MacPorts, a Windows download, a container image, and building from source with Go. The project identifies its license as MIT. Its HTTP API is unauthenticated by default, though bearer-token authentication is supported.

Spec sheet

Purpose
Toxiproxy is a TCP proxy for simulating network and system conditions in chaos and resiliency testing.Read 7 Oct 2026 · github.com
Intended users
The project is aimed at developers and teams testing service failure handling in development, unit and integration tests, and CI.Read 7 Oct 2026 · github.com
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.Read 7 Oct 2026 · github.com
API
The HTTP API supports creating, updating, listing, and deleting proxies and toxics, resetting proxies, and retrieving version and Prometheus-compatible metrics.Read 7 Oct 2026 · github.com
Security
The HTTP API is unauthenticated by default and can create proxies to arbitrary upstreams; the project advises against exposing it to untrusted networks and supports bearer token authentication.Read 7 Oct 2026 · github.com
License
The GitHub repository identifies the project license as MIT.Read 7 Oct 2026 · github.com
Client integrations
The README lists client libraries for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir.Read 7 Oct 2026 · github.com
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.Read 7 Oct 2026 · github.com
Connection control
Applications route test connections through Toxiproxy, whose connection behavior can then be manipulated over HTTP.Read 7 Oct 2026 · github.com
Determinism and chaos
The README describes deterministic connection tampering as well as randomized chaos and customization.Read 7 Oct 2026 · github.com
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.Read 7 Oct 2026 · github.com
How it works
Applications route test connections through the proxy and manipulate connection health through its HTTP API.Read 7 Oct 2026 · github.com
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.Read 7 Oct 2026 · github.com
Intended audience
The README presents Toxiproxy as a way to test that applications do not have single points of failure.Read 7 Oct 2026 · github.com
Interfaces
The project provides a TCP proxy, an HTTP API, and a command-line interface for managing proxies and toxics.Read 7 Oct 2026 · github.com
Language clients
The README lists client libraries for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir.Read 7 Oct 2026 · github.com
Metrics
Toxiproxy exposes Prometheus-compatible metrics through its HTTP API at /metrics.Read 7 Oct 2026 · github.com
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.Read 7 Oct 2026 · github.com
Open source license
The repository identifies its license as MIT.Read 7 Oct 2026 · github.com
Operational note
The README advises using ports outside the ephemeral port range to avoid random port conflicts.Read 7 Oct 2026 · github.com
Port behavior
The HTTP API listens on port 8474, and a proxy configured with listen port 0 is assigned an ephemeral port.Read 7 Oct 2026 · github.com
Use cases
The project is designed for testing, CI, and development environments.Read 7 Oct 2026 · github.com
Version compatibility
The README says Toxiproxy 2.0 changed the API incompatibly with version 1.x and advises using a client library that supports the server version.Read 7 Oct 2026 · github.com

Plans and prices

Toxiproxy Free Open source TCP proxy; MIT license Read 7 Oct 2026 · github.com

Every Toxiproxy plan and price →

Strong points and limits

Strong points

  • Free and MIT-licensed.
  • Supports deterministic and randomized connection tampering.
  • Provides HTTP API, CLI, and client libraries.
  • Exposes Prometheus-compatible metrics.
  • Runs on Linux, macOS, and Windows.

Limits

  • HTTP API is unauthenticated by default.
  • Version 2.x is incompatible with version 1.x API.
  • Project advises against exposing the API to untrusted networks.
  • No Kubernetes support or cloud fault injection.

Who it suits

Toxiproxy is for developers and teams checking how applications handle service failures in development, unit and integration tests, or CI. It is self-hosted and offers network fault injection, but not Kubernetes support or cloud fault injection.

Verdict

Toxiproxy gives teams controls for reproducing network failures in application tests, with several installation routes and language clients. Secure the API appropriately and match the client library to the server version in use.

Where Specifiction places it

Alternatives to ToxiproxyAll alternatives →