Skip to main content

Crate dakera_client

Crate dakera_client 

Source
Expand description

Dakera Rust Client SDK

A high-level Rust client for interacting with Dakera AI Agent Memory Platform.

§Quick Start (HTTP)

use dakera_client::{DakeraClient, UpsertRequest, QueryRequest};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create a client
    let client = DakeraClient::new("http://localhost:3000")?;

    // Check health
    let health = client.health().await?;
    println!("Server healthy: {}", health.healthy);

    // Upsert vectors
    let request = UpsertRequest {
        vectors: vec![
            dakera_client::Vector {
                id: "vec1".to_string(),
                values: vec![0.1, 0.2, 0.3, 0.4],
                metadata: None,
            },
        ],
    };
    client.upsert("my-namespace", request).await?;

    // Query for similar vectors
    let query = QueryRequest {
        vector: vec![0.1, 0.2, 0.3, 0.4],
        top_k: 10,
        filter: None,
        include_metadata: true,
        include_vectors: false,
        distance_metric: Default::default(),
        consistency: Default::default(),
        staleness_config: None,
    };
    let results = client.query("my-namespace", query).await?;

    for match_ in results.results {
        println!("ID: {}, Score: {}", match_.id, match_.score);
    }

    Ok(())
}

§gRPC Client with Connection Pooling

Enable the grpc feature for high-performance gRPC communication:

use dakera_client::grpc::{GrpcClient, GrpcClientConfig, GrpcConnectionPool};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Single client with HTTP/2 multiplexing
    let config = GrpcClientConfig::default()
        .with_endpoint("http://localhost:50051")
        .with_concurrency_limit(100);
    let client = GrpcClient::connect(config).await?;

    // Or use a connection pool for even higher throughput
    let pool = GrpcConnectionPool::new(GrpcClientConfig::default(), 4).await?;
    let client = pool.get();

    Ok(())
}

Re-exports§

pub use events::DakeraEvent;
pub use events::MemoryEvent;
pub use events::OpStatus;
pub use events::VectorMutationOp;
pub use admin::AutoPilotConfig;
pub use admin::AutoPilotConfigRequest;
pub use admin::AutoPilotConfigResponse;
pub use admin::AutoPilotConsolidationResult;
pub use admin::AutoPilotDedupResult;
pub use admin::AutoPilotStatusResponse;
pub use admin::AutoPilotTriggerAction;
pub use admin::AutoPilotTriggerRequest;
pub use admin::AutoPilotTriggerResponse;
pub use admin::BackupInfo;
pub use admin::BackupListResponse;
pub use admin::CacheStats;
pub use admin::ClusterStatus;
pub use admin::ConsolidationResultSnapshot;
pub use admin::CreateBackupRequest;
pub use admin::CreateBackupResponse;
pub use admin::DecayConfigResponse;
pub use admin::DecayConfigUpdateRequest;
pub use admin::DecayConfigUpdateResponse;
pub use admin::DecayStatsResponse;
pub use admin::DedupResultSnapshot;
pub use admin::FulltextReindexNamespaceResult;
pub use admin::FulltextReindexResponse;
pub use admin::IndexStats;
pub use admin::IndexStatsResponse;
pub use admin::KpiSnapshot;
pub use admin::LastDecayCycleStats;
pub use admin::NodeInfo;
pub use admin::NodeListResponse;
pub use admin::OpsStats;
pub use admin::QuotaConfig;
pub use admin::QuotaListResponse;
pub use admin::QuotaStatus;
pub use admin::RestoreBackupRequest;
pub use admin::RestoreBackupResponse;
pub use admin::RuntimeConfig;
pub use admin::SlowQueryListResponse;
pub use agents::AgentStats;
pub use agents::AgentSummary;
pub use agents::CompressResponse;
pub use agents::Memory;
pub use agents::WakeUpResponse;
pub use analytics::AnalyticsOverview;
pub use analytics::LatencyAnalytics;
pub use analytics::StorageAnalytics;
pub use analytics::ThroughputAnalytics;
pub use keys::ApiKeyUsageResponse;
pub use keys::CreateKeyRequest;
pub use keys::CreateKeyResponse;
pub use keys::CreateNamespaceKeyRequest;
pub use keys::CreateNamespaceKeyResponse;
pub use keys::KeyInfo;
pub use keys::ListKeysResponse;
pub use keys::ListNamespaceKeysResponse;
pub use keys::NamespaceKeyInfo;
pub use keys::NamespaceKeyUsageResponse;
pub use keys::RotateKeyResponse;
pub use knowledge::AgentNetworkEdge;
pub use knowledge::AgentNetworkInfo;
pub use knowledge::AgentNetworkNode;
pub use knowledge::AgentNetworkStats;
pub use knowledge::CrossAgentNetworkRequest;
pub use knowledge::CrossAgentNetworkResponse;
pub use knowledge::DeduplicateRequest;
pub use knowledge::DeduplicateResponse;
pub use knowledge::FullKnowledgeGraphRequest;
pub use knowledge::KnowledgeEdge;
pub use knowledge::KnowledgeGraphRequest;
pub use knowledge::KnowledgeGraphResponse;
pub use knowledge::KnowledgeNode;
pub use knowledge::SummarizeRequest;
pub use knowledge::SummarizeResponse;
pub use memory::AuditEvent;
pub use memory::AuditExportResponse;
pub use memory::AuditListResponse;
pub use memory::AuditQuery;
pub use memory::BatchForgetRequest;
pub use memory::BatchForgetResponse;
pub use memory::BatchMemoryFilter;
pub use memory::BatchRecallRequest;
pub use memory::BatchRecallResponse;
pub use memory::ConsolidationConfig;
pub use memory::ConsolidationLogEntry;
pub use memory::ExtractionProviderInfo;
pub use memory::ExtractionResult;
pub use memory::ForgetRequest;
pub use memory::ForgetResponse;
pub use memory::MemoryExportResponse;
pub use memory::MemoryImportResponse;
pub use memory::MemoryType;
pub use memory::RecallRequest;
pub use memory::RecallResponse;
pub use memory::RecalledMemory;
pub use memory::RotateEncryptionKeyRequest;
pub use memory::RotateEncryptionKeyResponse;
pub use memory::RoutingMode;
pub use memory::Session;
pub use memory::SessionEndResponse;
pub use memory::SessionStartResponse;
pub use memory::StoreMemoryRequest;
pub use memory::StoreMemoryResponse;
pub use reqwest;

Modules§

admin
Admin operations for the Dakera client.
agents
Agent management for the Dakera client.
analytics
Analytics operations for the Dakera client.
events
SSE streaming event types and client support (CE-1).
filter
keys
API Key management for the Dakera client.
knowledge
Knowledge graph operations for the Dakera client.
memory
Memory-oriented client methods for Dakera AI Agent Memory Platform

Structs§

ActualStats
Actual execution statistics (when execute=true)
AdminBackupInfo
Backup information.
AgentConsolidateResponse
Response from POST /v1/agents/{agent_id}/consolidate.
AgentConsolidationConfig
Response from consolidation config endpoints.
AgentConsolidationLogEntry
One entry in the agent consolidation log.
AgentFeedbackSummary
Response from GET /v1/agents/:id/feedback/summary (INT-1).
AggregationGroup
Single group in aggregation results
AggregationRequest
Request for aggregation query (Turbopuffer-inspired)
AggregationResponse
Response for aggregation query
BackupSchedule
Backup schedule configuration.
BatchQueryItem
A single query within a batch request
BatchQueryRequest
Batch query request - execute multiple queries in parallel
BatchQueryResponse
Batch query response
BatchQueryResult
Results for a single query within a batch
BatchQueryTextRequest
Request to execute multiple text queries with automatic embedding in a single call.
BatchQueryTextResponse
Response from a batch text query operation.
BulkDeleteRequest
Request for POST /v1/namespaces/{ns}/vectors/bulk-delete.
BulkDeleteResponse
Response from POST /v1/namespaces/{ns}/vectors/bulk-delete.
BulkUpdateRequest
Request for POST /v1/namespaces/{ns}/vectors/bulk-update.
BulkUpdateResponse
Response from POST /v1/namespaces/{ns}/vectors/bulk-update.
ColumnUpsertRequest
Column-based upsert request (Turbopuffer-inspired)
CompactionRequest
Compaction request
CompactionResponse
Compaction response
ComponentHealth
Component health status
ConfigureNamespaceRequest
Request body for PUT /v1/namespaces/:namespace — upsert semantics (v0.6.0).
ConfigureNamespaceResponse
Response from PUT /v1/namespaces/:namespace.
ConsolidationConfigPatch
Request for PATCH /v1/agents/{agent_id}/consolidation/config.
CostEstimate
Cost estimation
CountVectorsRequest
Request for POST /v1/namespaces/{ns}/vectors/count.
CountVectorsResponse
Response from POST /v1/namespaces/{ns}/vectors/count.
CreateNamespaceRequest
Request to create a new namespace.
DakeraClient
Dakera client for interacting with the vector database
DakeraClientBuilder
Builder for DakeraClient
DefaultQuotaResponse
Response from GET /admin/quotas/default.
DeleteRequest
Delete vectors request
DeleteResponse
Delete response
DisableMaintenanceRequest
Request for POST /admin/cluster/maintenance/disable.
Document
A document for full-text indexing
EnableMaintenanceRequest
Request for POST /admin/cluster/maintenance/enable.
EntityExtractionResponse
Response from POST /v1/memories/extract
ExecutionStage
A stage in query execution
ExportRequest
Request to export vectors from a namespace with pagination
ExportResponse
Response from export operation
ExportedVector
A single exported vector record
ExtractEntitiesRequest
Request body for POST /ode/extract (ODE-2).
ExtractEntitiesResponse
Response from POST /ode/extract on the ODE sidecar (ODE-2).
ExtractedEntity
A single extracted entity from GLiNER or rule-based pipeline.
FeedbackHealthResponse
Response from GET /v1/feedback/health (INT-1).
FeedbackHistoryEntry
A single recorded feedback event stored in memory metadata (INT-1).
FeedbackHistoryResponse
Response from GET /v1/memories/:id/feedback (INT-1).
FeedbackResponse
Response from POST /v1/memories/:id/feedback and PATCH /v1/memories/:id/importance (INT-1).
FetchRequest
Request to fetch vectors by their IDs.
FetchResponse
Response from a fetch-by-ID operation.
FullTextMatch
Full-text search result
FullTextSearchRequest
Full-text search request
FullTextSearchResponse
Full-text search response
FullTextStats
Full-text index statistics
GraphEdge
A directed edge in the memory knowledge graph.
GraphExport
Agent graph export from GET /v1/agents/{id}/graph/export.
GraphLinkRequest
Request body for POST /v1/memories/{id}/links.
GraphLinkResponse
Response from POST /v1/memories/{id}/links.
GraphNode
A node (memory) in the knowledge graph traversal result.
GraphOptions
Options for [DakeraClient::memory_graph].
GraphPath
Shortest path between two memories from GET /v1/memories/{id}/path.
HealthResponse
Health check response
HealthStatus
Health status for a component
HybridSearchRequest
Hybrid search request combining vector and full-text search.
HybridSearchResponse
Hybrid search response
ImportJobStatus
Status of an import job returned by GET /v1/import/{job_id}/status.
IndexAlternative
Alternative index that was considered
IndexDocumentsRequest
Index documents request
IndexDocumentsResponse
Index documents response
IndexSelection
Index selection details
IndexStatistics
Index statistics
JobInfo
Background job information
KgExportResponse
Response from GET /v1/knowledge/export with format=json (KG-2).
KgPathResponse
Response from GET /v1/knowledge/path (KG-2).
KgQueryResponse
Response from GET /v1/knowledge/query (KG-2).
ListNamespacesResponse
List namespaces response
MaintenanceStatus
Response from GET /admin/cluster/maintenance.
Match
A match result from a query
MemoryEntitiesResponse
Response from GET /v1/memory/entities/:id
MemoryFeedbackBody
Request body for POST /v1/memories/:id/feedback (INT-1).
MemoryGraph
Graph traversal result from GET /v1/memories/{id}/graph.
MemoryImportancePatch
Request body for PATCH /v1/memories/:id/importance (INT-1).
MemoryPolicy
Per-namespace memory lifecycle policy (COG-1).
MemoryTypeStatsResponse
Per-type memory statistics from GET /admin/memory-type-stats.
MigrateDimensionsResponse
Response from POST /admin/namespaces/migrate-dimensions.
MigrateNamespaceDimensionsRequest
Request for POST /admin/namespaces/migrate-dimensions.
MultiVectorSearchRequest
Request for multi-vector search with positive and negative vectors
MultiVectorSearchResponse
Response from multi-vector search
MultiVectorSearchResult
Single result from multi-vector search
NamespaceEntityConfig
Response from GET /v1/namespaces/{ns}/config.
NamespaceExtractorConfig
Response from GET /v1/namespaces/{ns}/extractor.
NamespaceInfo
Namespace information
NamespaceMigrationResult
Per-namespace migration result.
NamespaceNerConfig
Configuration for namespace-level entity extraction (CE-4).
NodeReplicationLag
Per-node replication lag entry.
OdeEntity
A single entity extracted by the GLiNER model (ODE-2).
QueryExplainRequest
Query explain request
QueryExplainResponse
Query explain response - detailed execution plan
QueryParams
Query parameters for reference
QueryRequest
Query request for vector similarity search
QueryResponse
Query response
QueryTextRequest
Request to query using natural language text with automatic embedding.
QuotaCheckRequest
Request for POST /admin/quotas/{namespace}/check.
QuotaCheckResult
Response from POST /admin/quotas/{namespace}/check.
QuotaUsage
Quota usage for a namespace.
RateLimitHeaders
Rate-limit and quota headers present on every API response (OPS-1).
ReadinessResponse
Readiness check response
Recommendation
Performance recommendation
ReplicationStatus
Response from GET /admin/cluster/replication.
ResourceUsage
Resource usage metrics
RetryConfig
Configuration for request retry behavior with exponential backoff.
RouteMatch
A single route match returned by POST /v1/route.
RouteRequest
Request for POST /v1/route.
RouteResponse
Response from POST /v1/route.
SetDefaultQuotaRequest
Request for PUT /admin/quotas/default.
SetQuotaRequest
Request for PUT /admin/quotas/{namespace}.
SetQuotaResponse
Response from PUT /admin/quotas.
ShardInfo
Shard information.
ShardListResponse
Response from GET /admin/cluster/shards.
ShardMove
A planned shard move.
ShardRebalanceRequest
Request for POST /admin/cluster/shards/rebalance.
ShardRebalanceResponse
Response from POST /admin/cluster/shards/rebalance.
StalenessConfig
Configuration for bounded staleness reads
StorageTierOverview
Overview of the tiered storage system from GET /admin/storage/tiers.
SystemDiagnostics
System diagnostics
SystemInfo
System information
TextDocument
A text document to upsert with automatic embedding generation.
TextQueryResponse
Response from a text query operation.
TextSearchResult
A single text search result.
TextUpsertResponse
Response from a text upsert operation.
TierActivity
Tier movement activity counters.
TierConfig
Tiered storage configuration parameters.
TierInfo
Information about a single storage tier.
UnifiedQueryRequest
Unified query request with flexible ranking options (Turbopuffer-inspired)
UnifiedQueryResponse
Unified query response
UnifiedSearchResult
Single result from unified query
UpdateBackupScheduleRequest
Request for POST /admin/backups/schedule.
UpsertRequest
Upsert vectors request
UpsertResponse
Upsert response
UpsertTextRequest
Request to upsert text documents with automatic embedding.
Vector
A vector with ID and optional metadata
WarmCacheRequest
Cache warming request with priority hints
WarmCacheResponse
Cache warming response

Enums§

AccessPatternHint
Access pattern hint for cache optimization
AggregateFunction
Aggregate function for computing values across documents
ClientError
Errors that can occur when using the Dakera client
DistanceMetric
Distance metric for similarity search
EdgeType
Edge type for memory knowledge graph relationships (CE-5).
EmbeddingModel
Supported embedding models for text-based operations.
ExplainQueryType
Query type for explain
FeedbackSignal
Feedback signal for memory active learning (INT-1).
RankBy
Ranking function for unified query API Supports vector search (ANN/kNN), full-text BM25, and attribute ordering
ReadConsistency
Read consistency level for queries (Turbopuffer-inspired)
SortDirection
Sort direction for attribute ordering
VectorSearchMethod
Vector search method for unified query
WarmingPriority
Priority level for cache warming operations
WarmingTargetTier
Target cache tier for warming

Type Aliases§

Result
Result type alias for Dakera client operations