revoke_resilience/lib.rs
1//! # Revoke Resilience
2//!
3//! 提供熔断器、限流器、重试等弹性机制的库。
4//!
5//! ## 特性
6//!
7//! - **熔断器(Circuit Breaker)**: 防止级联故障
8//! - **限流器(Rate Limiter)**: 令牌桶和滑动窗口算法
9//! - **重试(Retry)**: 指数退避和自定义策略
10//! - **超时(Timeout)**: 防止请求无限等待
11//! - **隔离(Bulkhead)**: 资源隔离,防止资源耗尽
12//!
13//! ## 使用示例
14//!
15//! ```rust,no_run
16//! use revoke_resilience::{CircuitBreaker, RateLimiter};
17//! use std::time::Duration;
18//!
19//! #[tokio::main]
20//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
21//! // 创建熔断器
22//! let breaker = CircuitBreaker::builder("my-service")
23//! .failure_threshold(5)
24//! .success_threshold(3)
25//! .timeout(Duration::from_secs(30))
26//! .build();
27//!
28//! // 创建限流器
29//! let limiter = RateLimiter::token_bucket(100, Duration::from_secs(1));
30//!
31//! Ok(())
32//! }
33//! ```
34
35pub mod circuit_breaker;
36pub mod error;
37pub mod rate_limiter;
38pub mod retry;
39pub mod timeout;
40pub mod bulkhead;
41
42pub use circuit_breaker::{CircuitBreaker, CircuitBreakerBuilder, CircuitState};
43pub use error::{ResilienceError, Result};
44pub use rate_limiter::{RateLimiter, RateLimiterType};
45pub use retry::{RetryPolicy, RetryStrategy};
46pub use timeout::Timeout;
47pub use bulkhead::Bulkhead;