About this project

Toxiproxy is a TCP proxy written in Go designed for chaos engineering and resiliency testing. It allows developers to simulate various network failures and conditions by intercepting connections between an application and its upstream services (such as databases or caches). Key capabilities include: - Network Simulation (Toxics): It provides several "toxics" to manipulate data flow, including latency (adding delay), bandwidth limiting, TCP timeouts, connection resets, packet loss, and slicing TCP data into smaller packets. - Dynamic Control: Proxies and toxics can be managed in real-time via a REST HTTP API or a command-line interface (CLI), enabling deterministic tampering during integration and unit tests. - Cross-Platform Support: The server is written in Go and available for Linux, macOS, Windows, and Docker. - Ecosystem: While the server is language-agnostic, official and community-driven client libraries exist for Ruby, Go, Python, .NET, PHP, Node.js, Java, Haskell, Rust, and Elixir. - Monitoring: It exposes Prometheus-compatible metrics via its HTTP API to track proxy performance and behavior.