tower-circuitbreaker

Crates.iotower-circuitbreaker
lib.rstower-circuitbreaker
version0.1.1
created_at2025-05-14 14:41:42.637449+00
updated_at2025-10-09 18:12:01.598673+00
descriptionDEPRECATED: Use tower-resilience instead - A circuit breaker middleware for Tower services
homepage
repositoryhttps://github.com/joshrotenberg/tower-circuitbreaker
max_upload_size
id1673505
size80,848
Josh Rotenberg (joshrotenberg)

documentation

https://docs.rs/tower-circuitbreaker

README

tower-circuitbreaker

⚠️ DEPRECATED: This crate has moved to tower-resilience

This standalone tower-circuitbreaker crate is no longer maintained. All functionality has been integrated into the comprehensive tower-resilience project, which provides:

  • Circuit Breaker (what you're looking for!)
  • Bulkhead (resource isolation)
  • Retry (with advanced backoff strategies)
  • Time Limiter (advanced timeouts)
  • Cache (response memoization)
  • Rate Limiter (request throttling)

All patterns share a unified event system, consistent APIs, and comprehensive observability support.

Migration

Old (tower-circuitbreaker):

[dependencies]
tower-circuitbreaker = "0.1"

New (tower-resilience):

[dependencies]
tower-resilience = "0.2"
# Or use the individual crate:
tower-resilience-circuitbreaker = "0.3"

API Changes:

// Old API
use tower_circuitbreaker::circuit_breaker_builder;
let cb = circuit_breaker_builder::<String, ()>()
    .failure_rate_threshold(0.5)
    .build();

// New API
use tower_resilience::circuitbreaker::CircuitBreakerLayer;
let cb = CircuitBreakerLayer::<String, ()>::builder()
    .failure_rate_threshold(0.5)
    .build();

Resources


Original README

For the original documentation, see the v0.1 documentation.

Commit count: 17

cargo fmt