tower-fault-injector
is a library for injecting various faults into a tower::Service
.
You can use the following layers to inject faults into a service:
ErrorLayer
- randomly inject errors into a service.LatencyLayer
- randomly add latency into a service.```rust use towerfaultinjector::latency::LatencyLayer; use tower::{service_fn, ServiceBuilder};
async fn my_service() -> Result<(), ()> { Ok(()) }
// Initialize a LatencyLayer with a 10% probability of injecting // 200 to 500 milliseconds of latency. let latency_layer = LatencyLayer::new(0.1, 200..500);
let service = ServiceBuilder::new() .layer(latencylayer) .service(servicefn(my_service)); ```