# Shopify/toxiproxy

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/shopify-toxiproxy).**

12,088 stars · 503 forks · Go · MIT

## Links

- GitHub: https://github.com/Shopify/toxiproxy
- Homepage: https://github.com/shopify/toxiproxy
- awesome-repositories: https://awesome-repositories.com/repository/shopify-toxiproxy.md

## Topics

`chaos` `down` `go` `is` `omg` `proxy` `resiliency` `tcp-proxy` `testing`

## Description

Toxiproxy is a framework designed for chaos engineering and network resilience testing. It functions as a programmable TCP proxy that intercepts and routes data streams between clients and servers, allowing developers to simulate unstable network conditions such as latency, bandwidth throttling, and connection failures.

The tool provides a control plane that enables the dynamic manipulation of network conditions on active connections in real time. By integrating into automated test suites, it allows for the programmatic injection of faults to validate how distributed systems and microservices handle connectivity disruptions.

Beyond core fault injection, the project includes administrative capabilities for managing the lifecycle and configuration of proxy instances. It also exposes performance metrics for proxied connections, facilitating the monitoring of traffic health and throughput during development and quality assurance cycles.

## Tags

### Networking & Communication

- [TCP Proxies](https://awesome-repositories.com/f/networking-communication/tcp-proxies.md) — Provides a programmable proxy for simulating network latency, bandwidth limits, and connection failures to test application resilience.
- [TCP Stream Interception](https://awesome-repositories.com/f/networking-communication/tcp-stream-interception.md) — Intercepts raw data streams between clients and servers to inject faults or monitor traffic without requiring application-level protocol awareness.
- [Latency Injection Engines](https://awesome-repositories.com/f/networking-communication/packet-injection-engines/latency-injection-engines.md) — Applies modular algorithms to incoming data packets to simulate network degradation like jitter, bandwidth throttling, and connection timeouts.
- [Traffic Manipulation Tools](https://awesome-repositories.com/f/networking-communication/traffic-manipulation-tools.md) — Intercepts and modifies live TCP connections to validate how distributed systems handle network-level disruptions and outages. ([source](https://github.com/shopify/toxiproxy#toxiproxy))
- [Traffic Interception](https://awesome-repositories.com/f/networking-communication/traffic-interception.md) — Intercepts and routes data connections between clients and upstream servers to facilitate the monitoring and manipulation of network traffic. ([source](https://github.com/shopify/toxiproxy#toxiproxy))
- [Proxy Managers](https://awesome-repositories.com/f/networking-communication/proxy-managers.md) — Allows defining and persisting network proxy settings through external files or programmatic inputs for consistent test environments. ([source](https://github.com/shopify/toxiproxy#toxiproxy))

### Testing & Quality Assurance

- [Network Testing](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/network-testing.md) — Simulates unstable network conditions like latency and packet loss to ensure applications handle real-world connectivity failures gracefully.
- [Test Automation Architecture](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/test-automation-architecture.md) — Validates application reliability by programmatically manipulating network traffic during automated test suites to verify robust error handling.

### DevOps & Infrastructure

- [Fault Injection Testing](https://awesome-repositories.com/f/devops-infrastructure/fault-tolerance/kernel-fault-injection/fault-injection-testing.md) — Injects controlled network faults into development and testing environments to verify the robustness of service-to-service communication.
- [Failure Simulation Tools](https://awesome-repositories.com/f/devops-infrastructure/resilient-infrastructure/failure-simulation-tools.md) — Injects latency, bandwidth limits, and connection failures into traffic to simulate unstable network environments during development and testing. ([source](https://github.com/shopify/toxiproxy#toxiproxy))

### System Administration & Monitoring

- [Proxy Lifecycle Management](https://awesome-repositories.com/f/system-administration-monitoring/proxy-lifecycle-management.md) — Provides programmatic and CLI-based interfaces to create, update, and monitor network proxy instances and their associated traffic disruptions. ([source](https://github.com/shopify/toxiproxy#toxiproxy))

### Software Engineering & Architecture

- [Control Planes](https://awesome-repositories.com/f/software-engineering-architecture/control-planes.md) — Exposes a RESTful interface for dynamically configuring proxy behavior and injecting network disruptions in real time.
