A TCP proxy for simulating network failures and latency to test application resiliency in development and CI environments.
Toxiproxy is a TCP proxy that simulates network and system failures like latency, downtime, and bandwidth constraints. It allows developers to test how their applications behave under adverse network conditions, ensuring they remain resilient and have no single points of failure. It's specifically built for testing, CI, and development environments.
Developers, QA engineers, and DevOps teams building distributed systems who need to validate application resiliency against network failures in automated tests and CI pipelines.
Developers choose Toxiproxy because it provides a lightweight, cross-platform, and programmable way to inject network chaos without requiring root access or complex setup. Its dynamic HTTP API and multi-language client support make it easy to integrate into existing test suites.
:alarm_clock: :fire: A TCP proxy to simulate network and system conditions for chaos and resiliency testing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both precise and randomized fault injection, enabling repeatable tests for network failures, as emphasized in the README's philosophy of proving resiliency.
Available for Linux, macOS, Windows, and Docker with simple installation via package managers or binaries, making it easy to deploy in diverse testing environments.
Offers official clients in Ruby, Go, Python, Java, and more, allowing seamless integration into various tech stacks without manual HTTP API calls.
Used by Shopify in all development and test environments since 2014, demonstrating its effectiveness and stability in real-world applications.
Limited to TCP connections, so it cannot simulate failures for UDP-based services or higher-layer protocols like HTTP/2 directly, which restricts its applicability.
Requires populating proxies and modifying application connections to route through Toxiproxy, adding complexity and potential for errors in test environments.
Upgrading from Toxiproxy 1.x to 2.0 introduced incompatible API changes, forcing updates to client libraries and migration efforts, as noted in the README.