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::{parts, retry_strategy};
10
11pub mod transport {
12    pub use chat_core::transport::*;
13}
14
15pub use chat_core::{
16    builder::ChatBuilder,
17    chat::Chat,
18    chat::state::{Structured, Unstructured},
19    error::{ChatError, ChatFailure},
20    traits::{CompletionProvider, EmbeddingsProvider},
21    transport::Transport,
22    types,
23    types::{
24        callback::{CallbackRetryContext, CallbackStrategy, RetryStrategy},
25        messages::{
26            Messages,
27            content::Content,
28            parts::{PartEnum, Parts},
29            tool::{Tool, ToolStatus},
30        },
31        metadata::Metadata,
32        options::ChatOptions,
33        provider_meta::ProviderMeta,
34        response::{ChatOutcome, ChatResponse, EmbeddingsResponse, PauseReason},
35        tools::{Action, ScopedCollection, TypedCollection},
36    },
37};
38
39#[cfg(feature = "stream")]
40pub use chat_core::{
41    chat::state::Streamed, traits::ChatProvider, traits::StreamProvider,
42    types::response::StreamEvent,
43};
44
45#[cfg(feature = "completions")]
46pub mod completions {
47    pub use chat_completions::*;
48}
49
50#[cfg(feature = "gemini")]
51pub mod gemini {
52    pub use chat_gemini::*;
53}
54
55#[cfg(feature = "claude")]
56pub mod claude {
57    pub use chat_claude::*;
58}
59
60#[cfg(feature = "openai")]
61pub mod openai {
62    pub use chat_openai::*;
63}
64
65#[cfg(feature = "ollama")]
66pub mod ollama {
67    pub use chat_ollama::*;
68}
69
70#[cfg(feature = "huggingface")]
71pub mod huggingface {
72    pub use chat_huggingface::*;
73}
74
75#[cfg(feature = "cerebras")]
76pub mod cerebras {
77    pub use chat_cerebras::*;
78}
79
80#[cfg(feature = "router")]
81pub mod router {
82    pub use chat_router::*;
83}
84
85pub mod prelude {
86    pub use crate::ChatOptions;
87    pub use crate::Messages;
88    pub use crate::types;
89    pub use crate::{ChatError, ChatFailure};
90    pub use crate::{CompletionProvider, EmbeddingsProvider};
91
92    #[cfg(feature = "completions")]
93    pub use crate::completions;
94
95    #[cfg(feature = "gemini")]
96    pub use crate::gemini;
97
98    #[cfg(feature = "claude")]
99    pub use crate::claude;
100
101    #[cfg(feature = "openai")]
102    pub use crate::openai;
103
104    #[cfg(feature = "ollama")]
105    pub use crate::ollama;
106
107    #[cfg(feature = "huggingface")]
108    pub use crate::huggingface;
109
110    #[cfg(feature = "cerebras")]
111    pub use crate::cerebras;
112
113    #[cfg(feature = "router")]
114    pub use crate::router;
115}