Crate turboclaude_core

Crate turboclaude_core 

Source
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 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?;

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 From implementation.