[package] name = "hcfs-sdk" version = "2.0.0" edition = "2021" description = "Rust SDK for the Context-Aware Hierarchical Context File System" license = "MIT" repository = "https://github.com/hcfs/hcfs" homepage = "https://docs.hcfs.dev/sdk/rust" documentation = "https://docs.rs/hcfs-sdk" keywords = ["hcfs", "context", "ai", "search", "embeddings"] categories = ["api-bindings", "web-programming::http-client"] authors = ["HCFS Development Team "] readme = "README.md" rust-version = "1.70" [dependencies] # HTTP client reqwest = { version = "0.11", features = ["json", "rustls-tls"], default-features = false } # Async runtime tokio = { version = "1.0", features = ["full"] } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Error handling thiserror = "1.0" anyhow = "1.0" # Time handling chrono = { version = "0.4", features = ["serde"] } # WebSocket support tokio-tungstenite = { version = "0.20", optional = true, features = ["rustls-tls-webpki-roots"] } futures-util = { version = "0.3", optional = true } # Caching moka = { version = "0.12", features = ["future"], optional = true } # Retry logic backoff = { version = "0.4", optional = true } # Rate limiting governor = { version = "0.6", optional = true } # Metrics prometheus = { version = "0.13", optional = true } # Tracing tracing = { version = "0.1", optional = true } # URL handling url = "2.4" # UUID for request IDs uuid = { version = "1.0", features = ["v4"] } [dev-dependencies] tokio-test = "0.4" wiremock = "0.5" [features] default = ["cache", "retry", "rate-limit"] websocket = ["tokio-tungstenite", "futures-util"] cache = ["moka"] retry = ["backoff"] rate-limit = ["governor"] metrics = ["prometheus"] tracing = ["dep:tracing"] full = ["websocket", "cache", "retry", "rate-limit", "metrics", "tracing"] [[example]] name = "basic_usage" required-features = ["cache"] [[example]] name = "websocket_streaming" required-features = ["websocket"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]