Expand description
Core abstractions for the TurboClaude ecosystem.
This crate provides foundational traits and utilities that are shared across all TurboClaude crates, enabling:
- Universal retry strategies via
BackoffStrategytrait- Exponential backoff with jitter
- Custom retry predicates
- Circuit breaker support (future)
- Consistent resource lifecycle management via
Resource<T>andLazyResource<T> - Declarative error boundaries via
error_boundary!macro - Standardized serialization via
SerializePipelinetrait
§Design Philosophy
This crate consolidates duplicated patterns across the TurboClaude ecosystem:
- Before: Retry logic duplicated in 2 places with different APIs
- After: One universal abstraction, multiple implementations
- Before: Error conversion via repetitive
map_err()chains - After: Declarative
error_boundary!definitions at module boundaries - Before: Manual serde method calls scattered throughout codebase
- After: Unified
SerializePipelineinterface for all protocol types
§Examples
Using the prelude for convenient imports:
use turboclaude_core::prelude::*;
use std::time::Duration;
let backoff = ExponentialBackoff::builder()
.max_retries(3)
.initial_delay(Duration::from_millis(100))
.build();
let result = backoff.execute(|| async {
Ok::<_, std::io::Error>(42)
}).await?;Modules§
- error
- Error boundary trait and types for unified error handling across the TurboClaude ecosystem
- prelude
- Convenient re-exports of commonly used items.
- resource
- Universal resource lifecycle management.
- retry
- Retry strategies and backoff implementations.
- serde
- Serialization pipeline trait for unified serde handling
Macros§
- error_
boundary - Macro to define error boundaries with automatic
Fromimplementation.