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::retry_strategy;
10
11pub use chat_core::{
12    builder::ChatBuilder,
13    chat::Chat,
14    chat::state::{Structured, Unstructured},
15    error::{ChatError, ChatFailure},
16    traits::{CompletionProvider, EmbeddingsProvider},
17    types,
18    types::{
19        callback::{CallbackRetryContext, CallbackStrategy, RetryStrategy},
20        messages::{
21            Messages,
22            content::Content,
23            parts::{PartEnum, Parts},
24        },
25        metadata::Metadata,
26        options::ChatOptions,
27        provider_meta::ProviderMeta,
28        response::{ChatResponse, EmbeddingsResponse},
29    },
30};
31
32#[cfg(feature = "stream")]
33pub use chat_core::{
34    chat::state::Streamed, traits::ChatProvider, traits::StreamProvider,
35    types::response::StreamEvent,
36};
37
38#[cfg(feature = "gemini")]
39pub mod gemini {
40    pub use chat_gemini::*;
41}
42
43
44#[cfg(feature = "claude")]
45pub mod claude {
46    pub use chat_claude::*;
47}
48
49#[cfg(feature = "openai")]
50pub mod openai {
51    pub use chat_openai::*;
52}
53
54#[cfg(feature = "router")]
55pub mod router {
56    pub use chat_router::*;
57}
58
59pub mod prelude {
60    pub use crate::ChatOptions;
61    pub use crate::Messages;
62    pub use crate::types;
63    pub use crate::{ChatError, ChatFailure};
64    pub use crate::{CompletionProvider, EmbeddingsProvider};
65
66    #[cfg(feature = "gemini")]
67    pub use crate::gemini;
68
69    #[cfg(feature = "claude")]
70    pub use crate::claude;
71
72    #[cfg(feature = "openai")]
73    pub use crate::openai;
74
75    #[cfg(feature = "router")]
76    pub use crate::router;
77}