Expand description
§aspect-std
Standard aspects library providing common, production-ready aspects.
This crate provides a collection of reusable aspects for common cross-cutting concerns:
- Logging: Structured logging with configurable levels
- Timing: Performance monitoring with statistics
- Caching: Generic memoization with TTL
- Metrics: Counters, gauges, and histograms
- Rate Limiting: Token bucket algorithm for throttling
- Circuit Breaker: Fault tolerance and failure prevention
- Authorization: Role-based access control
- Validation: Pre/post condition checking
§Quick Start
ⓘ
use aspect_std::prelude::*;
use aspect_macros::aspect;
// Use the standard logging aspect
#[aspect(LoggingAspect::new())]
fn my_function(x: i32) -> i32 {
x * 2
}Re-exports§
pub use logging::LoggingAspect;pub use timing::TimingAspect;pub use caching::CachingAspect;pub use metrics::MetricsAspect;pub use ratelimit::RateLimitAspect;pub use circuitbreaker::CircuitBreakerAspect;pub use circuitbreaker::CircuitState;pub use authorization::AuthorizationAspect;pub use authorization::AuthMode;pub use validation::ValidationAspect;pub use validation::ValidationRule;
Modules§
- authorization
- Authorization aspect for role-based access control.
- caching
- Generic caching/memoization aspect.
- circuitbreaker
- Circuit breaker aspect for fault tolerance.
- logging
- Structured logging aspect with configurable levels.
- metrics
- Metrics collection aspect (counters, gauges, histograms).
- prelude
- Prelude module for convenient imports.
- ratelimit
- Rate limiting aspect using token bucket algorithm.
- timing
- Performance monitoring aspect with statistics.
- validation
- Validation aspect for pre/post condition checking.