FREEDOM251

Freedom251 › Chaos Engineering Platforms

Toxiproxy

Free plan APILinuxMacSelf-hostedWindows

Visit Toxiproxy Alternatives Pricing

Toxiproxy's own site

What Toxiproxy is

Toxiproxy is a free, open-source TCP proxy for testing how applications respond to network and system problems. Applications route test connections through the proxy, then users change connection behavior using its 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. Testing can be deterministic or randomized, with customization available. The API manages proxies and toxics, resets proxies, and provides version information and Prometheus-compatible metrics. It listens on port 8474; setting a proxy's listen port to 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 repository identifies the license as MIT. The project warns that version 2.x changed the API incompatibly with 1.x, so clients need to support the server version. Its HTTP API is unauthenticated by default and should not be exposed to untrusted networks.

Who it suits

It suits developers and teams checking service failure handling in development, unit and integration tests, and CI. It is designed for self-hosted testing rather than cloud fault injection.

What it does well

  • Free with an MIT license.
  • Simulates latency, jitter, packet loss, and other conditions.
  • Provides API, CLI, and language client libraries.
  • Exposes Prometheus-compatible metrics.
  • Runs on Linux, macOS, and Windows.

What to know first

  • HTTP API is unauthenticated by default.
  • Version 2.x is incompatible with version 1.x clients.
  • Not designed for cloud fault injection.
  • Ephemeral ports can cause random port conflicts.

Limits

Toxiproxy is free under the MIT license. Version 2.x changes the API incompatibly with version 1.x, so client-library compatibility depends on the server version.

Plans

PlanBilled and limitsPrice
ToxiproxyOpen source TCP proxy; MIT licenseFree

As github.com lists them, read 7 Oct 2026. The maker's own page has the final word.

Getting started

  1. Open the Toxiproxy GitHub website.
  2. Choose an installation route: Linux packages or binaries, Homebrew or MacPorts, the Windows download, the container image, or a Go source build.
  3. Run Toxiproxy in the desired environment.
  4. Route test connections through the proxy and manage proxies and toxics with the HTTP API or command-line interface.
  5. Configure a listen port; use port 0 to receive an ephemeral port, or choose a port outside the ephemeral range to avoid random conflicts.
  6. Use a client library that supports the server version in use.

Toxiproxy is a TCP proxy for injecting network faults into development, tests, and CI. It suits developers who need repeatable control over individual connections rather than a broad, scheduled chaos programme. Its focused scope and free, MIT-licensed distribution make it a practical choice for testing failure handling, provided its unauthenticated API is kept off untrusted networks.

Overview

Applications send test traffic through Toxiproxy, then an HTTP API or command-line interface changes how those connections behave. That makes it useful for checking whether an application handles disrupted dependencies without requiring those disruptions in production. The approach is deliberately connection-level: Toxiproxy is not a cloud fault-injection service or a Kubernetes platform.

Testing can be deterministic or randomized. Teams can apply specific conditions for repeatable cases, or introduce variability through settings such as jitter, packet loss, and toxicity probability. This combination is valuable in development and CI, though teams seeking experiment scheduling or cloud-level injection will need a different class of tool.

Key features

  • Connection faults: Built-in toxics add latency or jitter, constrain bandwidth or transmitted data, delay socket closure, time out or reset connections, slice TCP data, and drop packets. This gives developers a varied set of failure modes without changing the application’s upstream service.
  • HTTP API and CLI: The API creates, updates, lists, and deletes proxies and toxics, resets proxies, and returns version information and Prometheus-compatible metrics at /metrics. Its breadth suits automated test setup and teardown; the API listens on port 8474.
  • Client libraries: Libraries are available for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir. That range helps teams integrate fault controls into tests in many languages, but library compatibility matters: version 2.x changed the API incompatibly with 1.x.
  • Flexible installation: Linux packages and binaries, Homebrew and MacPorts for macOS, a Windows download, a GitHub Container Registry image, and a Go source build cover common development and self-hosted environments.

A proxy configured with listen port 0 receives an ephemeral port, which is convenient for tests that need an assigned port. For other setups, the project advises avoiding the ephemeral port range to reduce random conflicts.

Pricing

Toxiproxy costs nothing. Its free plan is the open-source TCP proxy under the MIT license, with no trial period or paid tier described. That makes it accessible to individual developers and teams that can operate it themselves; there is no hosted service or paid support tier to choose instead.

Platforms

Toxiproxy supports API, Linux, macOS, self-hosted, and Windows environments. Its self-hosted deployment options and multiple installation routes suit teams integrating it into their own test infrastructure. It supports network fault injection and blast-radius controls, but not Kubernetes support, cloud fault injection, or experiment scheduling.

Who it's for

Choose Toxiproxy when developers or test teams need to verify how services behave under TCP connection failures in unit tests, integration tests, development, or CI. It is especially relevant when the failure cases should be repeatable and controlled through code. Look elsewhere if the requirement is a wider operational programme built around Kubernetes, cloud fault injection, or scheduled experiments.

Security needs deliberate handling. The HTTP API is unauthenticated by default and can create proxies to arbitrary upstreams, so it should not be exposed to untrusted networks. Bearer token authentication is supported, but teams still need to manage API access as part of deployment.

Pros and cons

  • Pro — precise TCP fault controls: Latency, resets, timeouts, bandwidth limits, and packet drops let teams exercise concrete dependency-failure cases.
  • Pro — automation-friendly interfaces: An HTTP API, CLI, language clients, and Prometheus-compatible metrics fit naturally into test workflows.
  • Pro — no license cost: The free MIT-licensed project can be self-hosted across Linux, macOS, and Windows-oriented environments.
  • Con — narrow operational scope: No Kubernetes support, cloud fault injection, or experiment scheduling makes it a poor fit for teams seeking a full chaos-engineering platform.
  • Con — API exposure risk: The unauthenticated default API can configure arbitrary upstream proxies, requiring careful network isolation or bearer-token authentication.
  • Con — version matching is essential: The incompatible API change between 1.x and 2.x means the client library must support the server version in use.

Alternatives

For a broader range of chaos-engineering tools, browse Chaos Engineering Platforms. Consider these alternatives when Toxiproxy’s TCP-focused scope is not the right match:

  • Chaos Toolkit is another free, open-source option, with a free-forever CLI under Apache License 2.0 and API, desktop, self-hosted, web, and Windows platforms.
  • ChaosBlade is a free alternative with support for three system platforms, four programming-language applications, and more than 200 experiment scenarios.
  • Reliably is a freemium, open-source option whose approach avoids lock-in; its free plan costs nothing for one team member.
  • Krkn is another free option, available across API, Linux, self-hosted, and web environments.
  • Chaos Mesh is a free, open-source cloud-native chaos engineering platform that runs on Kubernetes, making it the more relevant choice for Kubernetes-focused teams.
  • chaosd is a free Apache-2.0-licensed alternative distributed as a Linux binary, with a glibc v2.17-or-later requirement.
  • FaultMesh offers a free Starter plan for up to three services, with core fault types, basic resilience scoring, and community support; it also has a $49 a month Growth plan.
  • LitmusChaos offers both a free hosted SaaS plan and a free open-source option for installation on a cluster.

Verdict

Toxiproxy is a strong fit for developers who need free, controllable TCP fault injection in tests and CI. Its combination of deterministic and randomized connection tampering is the main reason to choose it; its narrow scope and security-sensitive API are the reasons to look elsewhere when you need a broader platform or cannot safely isolate its control interface.

Verdict

Toxiproxy gives developers control over TCP connection conditions for failure testing in development and CI. Keep its unauthenticated API away from untrusted networks, and match client-library versions to the server.

Questions

How much does Toxiproxy cost?

The listed plan is free. Toxiproxy is identified as open source under the MIT license.

Which platforms can run Toxiproxy?

The listed platforms are Linux, macOS, and Windows, as well as API use and self-hosting. Install routes include Linux packages and binaries, Homebrew or MacPorts, a Windows download, a container image, and building from Go source.

What network conditions can it simulate?

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.

Does Toxiproxy provide an API and client libraries?

Yes. Its HTTP API manages proxies and toxics and provides version information and Prometheus-compatible metrics. Client libraries are listed for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir.

Is Toxiproxy compatible with version 1.x clients?

Version 2.x changed the API incompatibly with version 1.x. The client library should support the server version in use.

Is the HTTP API protected by default?

No. It is unauthenticated by default and can create proxies to arbitrary upstreams. Toxiproxy supports bearer token authentication and advises against exposing the API to untrusted networks.

Facts from Toxiproxy's own pages

API
The HTTP API supports creating, updating, listing, and deleting proxies and toxics, resetting proxies, and retrieving version and Prometheus-compatible metrics. · github.com, 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, 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, 7 Oct 2026
Connection control
Applications route test connections through Toxiproxy, whose connection behavior can then be manipulated over HTTP. · github.com, 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, 7 Oct 2026
Determinism and chaos
The README describes deterministic connection tampering as well as randomized chaos and customization. · github.com, 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, 7 Oct 2026
How it works
Applications route test connections through the proxy and manipulate connection health through its HTTP API. · github.com, 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, 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, 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, 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, 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, 7 Oct 2026
License
The GitHub repository identifies the project license as MIT. · github.com, 7 Oct 2026
Metrics
Toxiproxy exposes Prometheus-compatible metrics through its HTTP API at /metrics. · github.com, 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, 7 Oct 2026
Open source license
The repository identifies its license as MIT. · github.com, 7 Oct 2026
Operational note
The README advises using ports outside the ephemeral port range to avoid random port conflicts. · github.com, 7 Oct 2026
Port behavior
The HTTP API listens on port 8474, and a proxy configured with listen port 0 is assigned an ephemeral port. · github.com, 7 Oct 2026
Purpose
Toxiproxy is a TCP proxy for simulating network and system conditions in chaos and resiliency testing. · github.com, 7 Oct 2026
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. · github.com, 7 Oct 2026
Use cases
The project is designed for testing, CI, and development environments. · github.com, 7 Oct 2026
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. · github.com, 7 Oct 2026

Where Toxiproxy stands on Freedom251

Look at these too