[package]
name = "dakera-client"
version = "0.11.89"
edition = "2021"
description = "Rust client SDK for Dakera AI Agent Memory Platform"
license = "MIT"
readme = "README.md"
repository = "https://github.com/dakera-ai/dakera-rs"
homepage = "https://dakera.ai"
documentation = "https://docs.rs/dakera-client"
keywords = ["agent-memory", "vector-search", "knowledge-graph", "ai-agents", "mcp"]
categories = ["database", "science", "command-line-utilities"]

[features]
default = ["http-client"]
http-client = ["dep:reqwest", "dep:futures-util", "dep:urlencoding"]
grpc = ["dep:tonic", "dep:prost", "dep:tower", "dep:http-body-util", "dep:bytes", "dep:http"]
full = ["http-client", "grpc"]

[dependencies]
# HTTP client (minimal features to avoid missing vendor deps)
reqwest = { version = "0.13", default-features = false, features = ["json", "query", "rustls-native-certs", "stream"], optional = true }

# SSE streaming support (enabled with http-client feature)
futures-util = { version = "0.3", optional = true }
urlencoding = { version = "2.1", optional = true }

# gRPC client
tonic = { version = "0.14", optional = true }
prost = { version = "0.14", optional = true }
tower = { version = "0.5", features = ["util", "limit", "buffer", "timeout"], optional = true }
http-body-util = { version = "0.1", optional = true }
bytes = { version = "1.5", optional = true }
http = { version = "1.1", optional = true }

# Async runtime
tokio = { version = "1.0", features = ["rt-multi-thread", "macros", "sync", "time"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Error handling
thiserror = "2.0"

# Logging
tracing = "0.1"

[dev-dependencies]
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"] }
mockito = "1"

