EVERYTHING XIAOMI
Get listed

Toxiproxy

Toxiproxy is a free, open-source TCP proxy for developers and teams checking how applications handle service failures.

Place
#6 of 24
Score
6.5
Toxiproxy's website

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.

All about pricing
PlanPriceWhat it gives you
ToxiproxyFreeOpen 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

All alternatives
  1. 1FaultMesh logo

    FaultMesh

    Free planWebAPISelf-hosted
    7.2From $49 a month
  2. 2Gremlin logo

    Gremlin

    WebAPILinuxSelf-hosted
    7.2From $3,750 a month
  3. 3Reliably logo

    Reliably

    Free planWebLinuxmacOSSelf-hosted
    7.1From £40 a month
  4. 4

    Krkn

    Free planWebAPILinuxSelf-hosted
    6.7Free plan
  5. 5Chaos Mesh logo

    Chaos Mesh

    Free planWebAPISelf-hosted
    6.5Free plan
  6. 6Chaos Toolkit logo

    Chaos Toolkit

    Free planWebAPILinuxmacOS
    6.4Free plan