Expand description
§ContextLite Rust Client
A high-performance, async Rust client for the ContextLite context engine.
§Features
- Async/Await Support: Built on Tokio for high-performance async operations
- Type Safety: Comprehensive type definitions with builder patterns
- Error Handling: Rich error types with proper error chaining
- Connection Pooling: HTTP connection pooling for optimal performance
- Authentication: Bearer token authentication support
- Validation: Client-side validation for better error messages
- Flexible API: Builder patterns for easy configuration
§Quick Start
use contextlite_client::{ContextLiteClient, ClientConfig, Document, SearchQuery};
 
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create a client with default configuration
    let client = ContextLiteClient::new("http://localhost:8080")?;
     
    // Or with custom configuration
    let config = ClientConfig::new("http://localhost:8083")
        .with_auth_token("your-token")
        .with_timeout(60);
    let client = ContextLiteClient::with_config(config)?;
     
    // Add a document
    let document = Document::new("example.txt", "This is an example document");
    let doc_id = client.add_document(&document).await?;
     
    // Search for documents
    let query = SearchQuery::new("example").with_limit(10);
    let results = client.search(&query).await?;
     
    println!("Found {} documents", results.documents.len());
     
    Ok(())
}§Error Handling
The client provides comprehensive error handling with detailed error messages:
use contextlite_client::{ContextLiteClient, ContextLiteError};
 
#[tokio::main]
async fn main() {
    let client = ContextLiteClient::new("http://localhost:8080").unwrap();
     
    match client.health().await {
        Ok(health) => println!("Server is healthy: {}", health.status),
        Err(ContextLiteError::AuthError { message }) => {
            eprintln!("Authentication failed: {}", message);
        },
        Err(ContextLiteError::ServerError { status, message }) => {
            eprintln!("Server error {}: {}", status, message);
        },
        Err(err) => eprintln!("Error: {}", err),
    }
}Re-exports§
- pub use client::ContextLiteClient;
- pub use error::ContextLiteError;
- pub use error::Result;
- pub use types::CompleteHealthStatus;
- pub use types::SmtInfo;
- pub use types::DatabaseStats;
- pub use types::Features;
- pub use types::ClientConfig;
- pub use types::ContextRequest;
- pub use types::ContextResponse;
- pub use types::Document;
- pub use types::DocumentReference;
- pub use types::SearchQuery;
- pub use types::SearchResponse;
- pub use types::StorageInfo;
Modules§
- client
- ContextLite HTTP client implementation.
- error
- Error types for the ContextLite Rust client.
- types
- Core types for the ContextLite Rust client.
Type Aliases§
- Client
- Convenience alias for the main client type