Skip to main content

cognate_llm/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(missing_docs)]
3
4//! # Cognate
5//!
6//! A modular, extensible LLM framework for Rust with multi-provider support, type-safe tools, and RAG capabilities.
7//!
8//! ## Quick Start
9//!
10//! ```rust,no_run
11//! use cognate::prelude::*;
12//!
13//! #[tokio::main]
14//! async fn main() {
15//!     let client = cognate::providers::OpenAiProvider::new("sk-...".to_string());
16//!     // Use the client...
17//! }
18//! ```
19//!
20//! ## Features
21//!
22//! - `providers` - OpenAI and Anthropic provider support (default)
23//! - `tools` - Type-safe tool calling with derive macros (default)
24//! - `prompts` - Compile-time validated prompt templates (default)
25//! - `rag` - Retrieval-Augmented Generation support
26//! - `axum` - Axum web framework integration
27//! - `full` - All features
28
29pub use cognate_core::{
30    error, middleware, ratelimit, types, Error, Layer, Message, Provider, Request, Response,
31};
32
33pub use cognate_providers::{
34    anthropic, openai, retry, sse, AnthropicProvider, FallbackProvider, OpenAiProvider,
35    RetryConfig,
36};
37
38pub use cognate_tools::{Tool, ToolExecutor};
39pub use cognate_tools_derive::Tool as DeriveToolMacro;
40
41pub use cognate_prompts::Prompt;
42pub use cognate_prompts_derive::Prompt as DerivePromptMacro;
43
44#[cfg(feature = "rag")]
45pub use cognate_rag::{Document, MemoryVectorStore, RagPipeline, VectorStore};
46
47#[cfg(feature = "axum")]
48pub use cognate_axum;
49
50// Re-export derive macros for convenience
51pub use cognate_tools_derive;
52pub use cognate_prompts_derive;
53
54/// Prelude module for convenient imports
55pub mod prelude {
56    pub use crate::{Error, Layer, Message, Provider, Request, Response};
57    pub use crate::{AnthropicProvider, FallbackProvider, OpenAiProvider, RetryConfig};
58    pub use crate::{Tool, ToolExecutor};
59
60    #[cfg(feature = "rag")]
61    pub use crate::{Document, MemoryVectorStore, RagPipeline, VectorStore};
62}
63
64pub mod providers {
65    //! Provider implementations
66    pub use cognate_providers::*;
67}
68
69pub mod tools {
70    //! Tool calling and execution
71    pub use cognate_tools::*;
72}
73
74pub mod prompts {
75    //! Prompt templating
76    pub use cognate_prompts::*;
77}
78