Skip to main content

chat_rs/
lib.rs

1//! # Chat-RS
2//!
3//! A multi-provider LLM framework.
4//!
5//! This crate provides a unified, type-safe API for interacting with Large Language Models
6//! like Google Gemini, Anthropic Claude, and OpenAI. It features compile-time safe builders,
7//! automatic retry loops, and native tool execution.
8
9pub use chat_core::{
10    builder::ChatBuilder,
11    chat::Chat,
12    chat::state::{Structured, Unstructured},
13    error::{ChatError, ChatFailure},
14    traits::{CompletionProvider, EmbeddingsProvider},
15    types,
16    types::{
17        callback::{CallbackRetryContext, CallbackStrategy, RetryStrategy},
18        messages::{
19            Messages,
20            content::Content,
21            parts::{PartEnum, Parts},
22        },
23        metadata::Metadata,
24        options::ChatOptions,
25        response::{ChatResponse, EmbeddingsResponse},
26    },
27};
28
29#[cfg(feature = "stream")]
30pub use chat_core::{chat::state::Streamed, traits::StreamProvider, types::response::StreamEvent};
31
32#[cfg(feature = "gemini")]
33pub mod gemini {
34    pub use chat_gemini::*;
35}
36
37#[cfg(feature = "claude")]
38pub mod claude {
39    pub use chat_claude::*;
40}
41
42#[cfg(feature = "openai")]
43pub mod openai {
44    pub use chat_openai::*;
45}
46
47pub mod prelude {
48    pub use crate::ChatOptions;
49    pub use crate::Messages;
50    pub use crate::types;
51    pub use crate::{ChatError, ChatFailure};
52    pub use crate::{CompletionProvider, EmbeddingsProvider};
53
54    #[cfg(feature = "gemini")]
55    pub use crate::gemini::*;
56
57    #[cfg(feature = "claude")]
58    pub use crate::claude::*;
59
60    #[cfg(feature = "openai")]
61    pub use crate::openai::*;
62}