aidale 0.1.0

Aidale - Elegant Rust AI SDK inspired by OpenDAL
Documentation

Aidale

Elegant Rust AI SDK inspired by OpenDAL's architecture.

Aidale provides a unified, composable interface for interacting with multiple AI providers (OpenAI, Anthropic, etc.) with support for middleware layers and extensible plugins.

Features

  • Zero-cost abstractions: Static dispatch during building, single type erasure at runtime
  • Composable layers: Stack multiple layers (logging, retry, caching, etc.)
  • Plugin system: Extend runtime behavior with hooks
  • Type safety: Leverage Rust's type system for correctness
  • Async/await: Full async support with tokio

Quick Start

[dependencies]
aidale = { version = "0.1", features = ["openai", "layers"] }
use aidale::{RuntimeExecutor, Message, TextParams};
use aidale::provider::OpenAiProvider;
use aidale::layer::LoggingLayer;

# async fn example() -> Result<(), Box<dyn std::error::Error>> {
// Create provider
let provider = OpenAiProvider::builder()
    .api_key("your-api-key")
    .build()?;

// Build executor with layers
let executor = RuntimeExecutor::builder(provider)
    .layer(LoggingLayer::new())
    .finish();

// Generate text
let params = TextParams::new(vec![
    Message::user("What is Rust?"),
]);

let result = executor.generate_text("gpt-3.5-turbo", params).await?;
println!("{}", result.content);
# Ok(())
# }

Feature Flags

  • default: Includes openai provider
  • openai: OpenAI provider support
  • providers: All available providers
  • layers: Built-in layers (logging, retry, caching, etc.)
  • plugins: Built-in plugins (tool use, etc.)
  • full: All features enabled