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
[]
= { = "0.1", = ["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: Includesopenaiprovideropenai: OpenAI provider supportproviders: All available providerslayers: Built-in layers (logging, retry, caching, etc.)plugins: Built-in plugins (tool use, etc.)full: All features enabled