Skip to main content

rskit_resilience/
lib.rs

1//! Fault-tolerance primitives: retry, circuit breaker, bulkhead, and rate limiter.
2
3#![warn(missing_docs)]
4
5/// Semaphore-based concurrency limiter.
6pub mod bulkhead;
7/// Asynchronous circuit breaker with closed / open / half-open states.
8pub mod circuit_breaker;
9/// [`tower::Layer`] wrappers for each resilience primitive.
10pub mod layers;
11/// High-level composition API for resilience primitives.
12pub mod policy;
13/// Token-bucket rate limiter backed by `governor`.
14pub mod rate_limiter;
15/// Exponential, constant, and linear back-off retry policies.
16pub mod retry;
17
18pub use bulkhead::{Bulkhead, BulkheadConfig};
19pub use circuit_breaker::{CbConfig, CbState, CircuitBreaker};
20pub use policy::Policy;
21pub use rate_limiter::{RateLimiter, RateLimiterConfig};
22pub use retry::{
23    BackoffKind, ConstantBackoff, LinearBackoff, RetryError, RetryPolicy, RetryPreset,
24};
25
26pub use layers::{BulkheadLayer, CircuitBreakerLayer, RateLimitLayer, RetryLayer, TimeoutLayer};