zeroentropy_community/
lib.rs

1//! # ZeroEntropy Rust SDK
2//!
3//! Rust client library for the [ZeroEntropy API](https://zeroentropy.dev).
4//!
5//! ## Quick Start
6//!
7//! ```no_run
8//! use zeroentropy_community::Client;
9//!
10//! #[tokio::main]
11//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
12//!     // Create client from environment variable ZEROENTROPY_API_KEY
13//!     let client = Client::from_env()?;
14//!
15//!     // Create a collection
16//!     client.collections().add("my_collection").await?;
17//!
18//!     // Add a document
19//!     client.documents().add_text(
20//!         "my_collection",
21//!         "doc1.txt",
22//!         "This is a test document",
23//!         None,
24//!     ).await?;
25//!
26//!     // Search documents
27//!     let results = client.queries().top_snippets(
28//!         "my_collection",
29//!         "test",
30//!         10,
31//!         None,
32//!         None,
33//!         None,
34//!         None,
35//!     ).await?;
36//!
37//!     println!("Found {} results", results.results.len());
38//!     Ok(())
39//! }
40//! ```
41
42mod client;
43mod error;
44mod resources;
45mod types;
46
47pub use client::{Client, ClientBuilder};
48pub use error::{Error, Result};
49pub use resources::{Collections, Documents, Models, Queries};
50pub use types::*;
51
52impl Client {
53    /// Access the collections resource
54    pub fn collections(&self) -> Collections {
55        Collections::new(self)
56    }
57
58    /// Access the documents resource
59    pub fn documents(&self) -> Documents {
60        Documents::new(self)
61    }
62
63    /// Access the queries resource
64    pub fn queries(&self) -> Queries {
65        Queries::new(self)
66    }
67
68    /// Access the models resource
69    pub fn models(&self) -> Models {
70        Models::new(self)
71    }
72}