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)

MIT license

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 BackoffStrategy trait
    • Exponential backoff with jitter
    • Custom retry predicates
    • Circuit breaker support (future)
  • Consistent resource lifecycle management via Resource<T> and LazyResource<T>
  • Declarative error boundaries via error_boundary! macro
  • Standardized serialization via SerializePipeline trait

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 SerializePipeline interface 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