Skip to main content

Crate ekodb_client

Crate ekodb_client 

Source
Expand description

§ekoDB Client Library

Official Rust client for ekoDB - A high-performance database with intelligent caching, real-time capabilities, and automatic optimization.

§Features

  • Async/Await: Built on Tokio for high-performance async operations
  • Type-Safe: Strong typing with Rust’s type system
  • Auto-Retry: Automatic retry with exponential backoff for transient failures
  • Connection Pooling: Efficient connection management
  • WebSocket Support: Real-time subscriptions and updates
  • Batch Operations: Efficient bulk inserts, updates, and deletes
  • Query Builder: Fluent API for building complex queries

§Quick Start

use ekodb_client::{Client, Record};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create a client
    let client = Client::builder()
        .base_url("https://api.ekodb.net")
        .api_key("your-api-key")
        .build()?;

    // Insert a record
    let mut record = Record::new();
    record.insert("name", "John Doe");
    record.insert("age", 30);
     
    let result = client.insert("users", record, None).await?;
    println!("Inserted: {:?}", result);

    Ok(())
}

Re-exports§

pub use chat::ChatMessageRequest;
pub use chat::ChatRequest;
pub use chat::ChatResponse;
pub use chat::ChatSession;
pub use chat::ChatSessionResponse;
pub use chat::CollectionConfig;
pub use chat::ContextSnippet;
pub use chat::CreateChatSessionRequest;
pub use chat::FieldSearchOptions;
pub use chat::GetMessagesQuery;
pub use chat::GetMessagesResponse;
pub use chat::ListSessionsQuery;
pub use chat::ListSessionsResponse;
pub use chat::MergeSessionsRequest;
pub use chat::MergeStrategy;
pub use chat::Models;
pub use chat::TextSearchOptions as ChatTextSearchOptions;
pub use chat::ToggleForgottenRequest;
pub use chat::TokenUsage;
pub use chat::UpdateMessageRequest;
pub use chat::UpdateSessionRequest;
pub use client::Client;
pub use client::ClientBuilder;
pub use client::RateLimitInfo;
pub use error::Error;
pub use error::Result;
pub use functions::ChatMessage;
pub use functions::Function;
pub use functions::FunctionResult;
pub use functions::FunctionStats;
pub use functions::GroupFunctionConfig;
pub use functions::GroupFunctionOp;
pub use functions::ParameterDefinition;
pub use functions::Script;
pub use functions::ScriptCondition;
pub use functions::SortFieldConfig;
pub use functions::StageStats;
pub use functions::UserFunction;
pub use schema::CollectionMetadata;
pub use schema::DistanceMetric;
pub use schema::FieldTypeSchema;
pub use schema::IndexConfig;
pub use schema::Schema;
pub use schema::VectorIndexAlgorithm;
pub use search::SearchQuery;
pub use search::SearchResponse;
pub use search::SearchResult;
pub use types::FieldType;
pub use types::NumberValue;
pub use types::Query;
pub use types::QueryOperator;
pub use types::Record;
pub use types::SerializationFormat;

Modules§

chat
Chat and AI functionality for ekoDB
client
Main client implementation for ekoDB
error
Error types for the ekoDB client
functions
Scripts API for ekoDB client
options
Options structs for CRUD operations
retry
Retry logic with exponential backoff
schema
Schema management for collections
search
Full-text and vector search support for ekoDB
types
Public API types for ekoDB client

Structs§

AuthManager
Manages authentication tokens
BatchBuilder
Builder for batch operations
JoinConfig
Configuration for joining collections
QueryBuilder
Builder for constructing complex queries
WebSocketClient
WebSocket client for real-time communication with persistent connection

Enums§

SortOrder
Sort order for query results

Constants§

VERSION
Client version

Functions§

extract_record
Transform an entire record by extracting all field values. Preserves the ‘id’ field and extracts values from all other fields.
get_array_value
Extract an array from an ekoDB Array field
get_binary_value
Extract bytes from an ekoDB Binary field
get_bool_value
Extract a boolean value from an ekoDB field
get_bytes_value
Extract bytes from an ekoDB Bytes field
get_datetime_value
Extract a DateTime string from an ekoDB DateTime field
get_decimal_value
Extract a decimal value from an ekoDB Decimal field
get_duration_value
Extract duration in milliseconds from an ekoDB Duration field
get_float_value
Extract a float value from an ekoDB field
get_int_value
Extract an integer value from an ekoDB field
get_object_value
Extract an object from an ekoDB Object field
get_set_value
Extract an array from an ekoDB Set field
get_string_value
Extract a string value from an ekoDB field
get_uuid_value
Extract a UUID string from an ekoDB UUID field
get_value
Extract the value from an ekoDB field object. ekoDB returns fields as {"type": "String", "value": "..."} objects. This helper safely extracts the value or returns the input if it’s not a field object.
get_values
Extract values from multiple fields in a record. Useful for processing entire records returned from ekoDB.
get_vector_value
Extract a vector of floats from an ekoDB Vector field