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§
- Auth
Manager - Manages authentication tokens
- Batch
Builder - Builder for batch operations
- Join
Config - Configuration for joining collections
- Query
Builder - Builder for constructing complex queries
- WebSocket
Client - WebSocket client for real-time communication with persistent connection
Enums§
- Sort
Order - 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