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}