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).await?;
    println!("Inserted: {:?}", result);

    Ok(())
}

Structs§

BatchBuilder
Builder for batch operations
ChatMessageRequest
Request to send a message in an existing session
ChatRequest
Request to send a chat message
ChatResponse
Response from a chat request
ChatSession
Chat session details
ChatSessionResponse
Response containing chat session information
ChatTextSearchOptions
Text search options for chat context retrieval
Client
ekoDB client
ClientBuilder
Builder for creating a Client
CollectionConfig
Configuration for searching a specific collection
CollectionMetadata
Collection metadata with analytics
ContextSnippet
Context snippet from search results
CreateChatSessionRequest
Request to create a new chat session
FieldSearchOptions
Field-specific search options
FieldTypeSchema
Field type schema with constraints
GetMessagesQuery
Query parameters for getting messages
GetMessagesResponse
Response containing messages with pagination metadata
JoinConfig
Configuration for joining collections
ListSessionsQuery
Query parameters for listing sessions
ListSessionsResponse
Response containing list of chat sessions
MergeSessionsRequest
Request to merge multiple chat sessions
Models
Available LLM models from different providers
Query
Query for finding records
QueryBuilder
Builder for constructing complex queries
RateLimitInfo
Rate limit information from the server
Record
A record in ekoDB
Schema
Collection schema
SearchQuery
Search query for full-text and vector search
SearchResponse
Search response containing results and metadata
SearchResult
Search result with score and matched fields
ToggleForgottenRequest
Request to toggle message forgotten status
TokenUsage
Token usage information from LLM providers
UpdateMessageRequest
Request to update a message
UpdateSessionRequest
Request to update session metadata
WebSocketClient
WebSocket client for real-time communication with persistent connection

Enums§

DistanceMetric
Distance metric for vector similarity
Error
Errors that can occur when using the ekoDB client
FieldType
Field type representing all supported data types in ekoDB
IndexConfig
Index configuration for a field
MergeStrategy
Merge strategy for combining chat sessions
NumberValue
Flexible numeric value that can be Integer, Float, or Decimal
QueryOperator
Query operators for filtering
SortOrder
Sort order for query results
VectorIndexAlgorithm
Vector index algorithm

Constants§

VERSION
Client version

Type Aliases§

Result
Result type alias for ekoDB client operations