Toxiproxy
Toxiproxy is a free, open-source TCP proxy for developers and teams checking how applications handle service failures.
What Toxiproxy is
Toxiproxy is a free, open-source TCP proxy for developers and teams checking how applications handle service failures. Test connections pass through the proxy, where connection conditions can be changed through an HTTP API or command-line interface. Built-in settings can introduce latency or jitter, constrain bandwidth, delay socket closure, time out or reset connections, slice TCP data, limit transmitted data, or drop packets. Tests can use deterministic changes or randomized behavior, including packet loss and toxicity probability. The API manages proxies and toxics, resets proxies, and provides version details and Prometheus-compatible metrics at /metrics. It listens on port 8474; assigning a proxy a listen port of 0 gives it an ephemeral port. Toxiproxy offers client libraries for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir. Install options include Linux packages and binaries, Homebrew or MacPorts, a Windows download, a container image, and building with Go. The project is MIT-licensed and supports Linux, macOS, Windows, API use, and self-hosting.
Good
- Free plan and MIT license.
- Supports deterministic and randomized connection changes.
- HTTP API exposes Prometheus-compatible metrics.
- Client libraries span ten listed languages.
- Install options include Linux, macOS, Windows, and containers.
Watch out
- HTTP API is unauthenticated by default.
- Version 2.x is incompatible with version 1.x APIs.
- No Kubernetes support or cloud fault injection.
- Ephemeral ports may conflict with random port use.
Who it suits
Toxiproxy suits developers and teams testing service failure handling in development, unit and integration tests, or CI. It is intended for checking that applications do not depend on a single point of failure.
Verdict
Toxiproxy gives teams control over TCP connection behavior for resiliency testing, with multiple client libraries and deployment options. Protect its unauthenticated API from untrusted networks, and match client libraries to the server version.
Plans and prices
From Toxiproxy's own pricing page, checked 7 Oct 2001.
| Plan | Price | What it gives you |
|---|---|---|
| Toxiproxy | Free | Open source TCP proxy; MIT license |
The facts
Each one read from Toxiproxy's own pages, with the date it was checked.
What it does
- API
- The HTTP API supports creating, updating, listing, and deleting proxies and toxics, resetting proxies, and retrieving version and Prometheus-compatible metrics.checked 7 Oct 2001
- Client integrations
- The README lists client libraries for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir.checked 7 Oct 2001
- 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.checked 7 Oct 2001
- Connection control
- Applications route test connections through Toxiproxy, whose connection behavior can then be manipulated over HTTP.checked 7 Oct 2001
- 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.checked 7 Oct 2001
- 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.checked 7 Oct 2001
- How it works
- Applications route test connections through the proxy and manipulate connection health through its HTTP API.checked 7 Oct 2001
- 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.checked 7 Oct 2001
- Intended audience
- The README presents Toxiproxy as a way to test that applications do not have single points of failure.checked 7 Oct 2001
- Intended users
- The project is aimed at developers and teams testing service failure handling in development, unit and integration tests, and CI.checked 7 Oct 2001
- Interfaces
- The project provides a TCP proxy, an HTTP API, and a command-line interface for managing proxies and toxics.checked 7 Oct 2001
- Language clients
- The README lists client libraries for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir.checked 7 Oct 2001
- License
- The GitHub repository identifies the project license as MIT.checked 7 Oct 2001
- Metrics
- Toxiproxy exposes Prometheus-compatible metrics through its HTTP API at /metrics.checked 7 Oct 2001
- 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.checked 7 Oct 2001
- Open source license
- The repository identifies its license as MIT.checked 7 Oct 2001
- Operational note
- The README advises using ports outside the ephemeral port range to avoid random port conflicts.checked 7 Oct 2001
- Port behavior
- The HTTP API listens on port 8474, and a proxy configured with listen port 0 is assigned an ephemeral port.checked 7 Oct 2001
- Purpose
- Toxiproxy is a TCP proxy for simulating network and system conditions in chaos and resiliency testing.checked 7 Oct 2001
- 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.checked 7 Oct 2001
- Use cases
- The project is designed for testing, CI, and development environments.checked 7 Oct 2001
- 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.checked 7 Oct 2001
Where it runs
- Determinism and chaos
- The README describes deterministic connection tampering as well as randomized chaos and customization.checked 7 Oct 2001
The full review of Toxiproxy
Toxiproxy is a free, self-hosted TCP proxy for developers checking how applications behave when connections fail or degrade. It is a strong fit for targeted tests in development and CI, but not for teams that need scheduled experiments or cloud-wide fault injection.
Overview
Route test connections through Toxiproxy, then change their behavior through its HTTP API or command-line interface. That gives developers a way to exercise failure handling without changing the application’s upstream service. Its scope is deliberately narrow: it manipulates TCP connections rather than orchestrating broad infrastructure experiments.
Tests can apply deterministic changes for repeatable cases or use randomized behavior, including jitter, packet loss, and toxicity probability. The former makes specific failure scenarios easier to reproduce; the latter can expose less predictable edge cases. Toxiproxy is self-hosted, with no Kubernetes support, cloud fault injection, or experiment scheduling.
Key features
- Connection fault controls: Built-in toxics can add latency or jitter, restrict bandwidth or transmitted data, delay socket closure, time out or reset connections, slice TCP data, and drop packets. That is a useful range for testing how an application responds to disrupted dependencies, though it remains focused on TCP connection behavior.
- HTTP API and CLI: The API can create, update, list, and delete proxies and toxics, reset proxies, and return version and Prometheus-compatible metrics. A proxy configured with listen port 0 receives an ephemeral port; the API itself listens on port 8474. The project advises choosing ports outside the ephemeral range to reduce random conflicts.
- Language clients: Client libraries are available for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir, which can make it easier to manage test proxies from different application stacks. Toxiproxy 2.x has API changes incompatible with 1.x, so the client library must support the server version in use.
- Deployment choices: Install options include Linux packages and binaries, Homebrew or MacPorts on macOS, a Windows download, a GitHub Container Registry image, and building from Go source. This gives teams several ways to fit it into self-hosted development and CI environments.
- Security controls: The API is unauthenticated by default and can create proxies to arbitrary upstreams, making unrestricted network exposure risky. Toxiproxy supports bearer token authentication, and its API should be kept away from untrusted networks.
Pricing
Toxiproxy is free: its Toxiproxy plan costs nothing and includes an open-source TCP proxy under the MIT license. There is no paid tier or trial to weigh against a free allowance, and no seat or usage cap is stated. The trade-off is operational rather than financial: teams run it themselves and must secure the API and manage compatibility between server and client versions.
Platforms
Toxiproxy supports API, Linux, macOS, Windows, and self-hosted deployment. Installation options include packages or binaries for Linux, Homebrew and MacPorts for macOS, a Windows download, a container image, and a Go source build. It supports network fault injection, but not Kubernetes or cloud fault injection.
Who it's for
Developers and teams testing service failure handling in development, unit and integration tests, or CI will get the most from Toxiproxy. It is particularly suitable when a test needs repeatable control over a dependency’s TCP connection. Teams seeking scheduled experiments, Kubernetes support, or fault injection across cloud infrastructure should look elsewhere.
Pros and cons
- Pro: A varied set of connection faults supports testing latency, bandwidth limits, resets, timeouts, packet loss, and other failure modes without changing the application’s upstream.
- Pro: Deterministic controls and randomized behavior serve both repeatable test cases and less predictable chaos scenarios.
- Pro: Multiple language clients and installation routes make it adaptable to different development and CI setups.
- Con: Its TCP proxy focus does not cover Kubernetes, cloud fault injection, or experiment scheduling.
- Con: The default unauthenticated API can configure proxies to arbitrary upstreams, so it requires careful network isolation or bearer token authentication.
- Con: API incompatibility between versions 1.x and 2.x requires matching the client library to the server.
Alternatives
For a broader set of chaos-engineering options, browse Chaos Engineering Platforms. Consider these alternatives when their stated approach or deployment scope better matches the work:
- Reliably is an open-source option for readers who want its stated approach of avoiding lock-in; its free plan includes one team member.
- Chaos Toolkit is a free, open-source CLI under Apache License 2.0 for readers who prefer a command-line tool.
- ChaosBlade is a free, open-source tool for readers looking for support across multiple system platforms, programming-language applications, and experiment scenarios.
- Krkn is another free option for readers considering a self-hosted tool.
- Chaos Mesh is a free, open-source cloud-native chaos engineering platform for readers running Kubernetes.
- Krkn-AI is a free, open-source option under Apache License 2.0 for readers considering Linux self-hosting.
- LitmusChaos offers a free hosted SaaS plan as well as a free open-source option for installation on a team's own cluster.
- Pumba is a free, open-source container chaos testing tool for readers focused on container testing.
Verdict
Choose Toxiproxy if your team needs a free, self-hosted way to control TCP failures in development, tests, or CI. Its broad connection-level fault controls and language clients make it a practical fit for that work. Look elsewhere if you need Kubernetes or cloud fault injection, scheduled experiments, or a broader chaos-engineering platform; whichever route you choose, keep Toxiproxy’s API protected and align the client library with the server version.
Alternatives to Toxiproxy
- 1

FaultMesh
Free planWebAPISelf-hosted7.2From $49 a month - 2

Gremlin
WebAPILinuxSelf-hosted7.2From $3,750 a month - 3

Reliably
Free planWebLinuxmacOSSelf-hosted7.1From £40 a month - 4
Krkn
Free planWebAPILinuxSelf-hosted6.7Free plan - 5

Chaos Mesh
Free planWebAPISelf-hosted6.5Free plan - 6

Chaos Toolkit
Free planWebAPILinuxmacOS6.4Free plan
