3 releases (breaking)
Uses new Rust 2024
| 0.3.0 | Jan 8, 2026 |
|---|---|
| 0.2.0 | Dec 5, 2025 |
| 0.1.0 | Nov 2, 2025 |
#34 in #boundaries
Used in 3 crates
(via turboclaude-transport)
61KB
826 lines
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?;
TurboClaude Core
Core abstractions, traits, and utilities for TurboClaude components.
Components
- HttpProvider and Transport traits
- Builder patterns for configuration
- Error types and handling
- Common utilities and helpers
Testing
cargo test
Documentation
cargo doc --open for full API documentation
Dependencies
~2.8–6.5MB
~91K SLoC