Skip to main content

tower_resilience_core/
lib.rs

1//! Core infrastructure for tower-resilience.
2//!
3//! This crate provides shared functionality used across all tower-resilience modules:
4//! - Event system for observability
5//! - Metrics infrastructure
6//! - Common configuration patterns
7//! - Registry for managing instances
8//! - Common error types for resilience patterns
9//! - AIMD controller for congestion control
10//! - Health integration traits for proactive resilience
11
12/// AIMD (Additive Increase / Multiplicative Decrease) controller.
13pub mod aimd;
14/// Failure classification traits and default implementations.
15pub mod classifier;
16/// Common error types for resilience patterns.
17pub mod error;
18/// Event system for resilience pattern observability.
19pub mod events;
20
21/// Unified error layer for composing resilience middleware.
22#[cfg(feature = "layer")]
23pub mod error_layer;
24
25/// Health integration traits for proactive resilience.
26#[cfg(feature = "health-integration")]
27pub mod health_integration;
28
29/// Test helpers for layer-crate contract regression tests.
30#[cfg(feature = "testing")]
31pub mod testing;
32
33pub use aimd::{AimdConfig, AimdController};
34pub use classifier::{DefaultClassifier, FailureClassifier, FnClassifier};
35pub use error::{IntoResilienceError, ResilienceError};
36
37#[cfg(feature = "layer")]
38pub use error_layer::{ResilienceErrorLayer, ResilienceErrorService, UnifiedErrors};
39pub use events::{EventListener, EventListeners, FnListener, ResilienceEvent};
40
41#[cfg(feature = "health-integration")]
42pub use health_integration::{HealthTriggerable, SharedHealthTrigger, TriggerHealth};