[package] name = "stemedb-api" version = "0.1.0" edition = "2021" description = "HTTP API for Episteme (StemeDB)" [lints] workspace = true [features] default = ["aphoria"] aphoria = ["dep:aphoria"] cluster = ["dep:stemedb-cluster", "dep:stemedb-sync", "dep:stemedb-rpc", "dep:stemedb-merkle", "dep:tonic", "dep:uhlc", "dep:async-trait"] [dependencies] stemedb-core = { path = "../stemedb-core" } stemedb-wal = { path = "../stemedb-wal", features = ["group-commit"] } stemedb-storage = { path = "../stemedb-storage" } stemedb-ingest = { path = "../stemedb-ingest" } stemedb-query = { path = "../stemedb-query" } stemedb-lens = { path = "../stemedb-lens" } # Optional: Aphoria code-level truth linting aphoria = { path = "../../applications/aphoria", optional = true } # Optional: Multi-node cluster participation stemedb-cluster = { path = "../stemedb-cluster", optional = true } stemedb-sync = { path = "../stemedb-sync", optional = true } stemedb-rpc = { path = "../stemedb-rpc", optional = true } stemedb-merkle = { path = "../stemedb-merkle", optional = true } tonic = { version = "0.12", optional = true } uhlc = { version = "0.7", optional = true } async-trait = { version = "0.1", optional = true } axum = { version = "0.7", features = ["json"] } axum-server = { version = "0.7", features = ["tls-rustls"] } tokio = { version = "1", features = ["full"] } serde = { version = "1", features = ["derive"] } serde_json = "1" serde_qs = "0.13" utoipa = { version = "5", features = ["axum_extras"] } utoipa-axum = "0.1" utoipa-swagger-ui = { version = "8", features = ["axum"] } tower = { version = "0.4", features = ["util"] } tower-http = { version = "0.5", features = ["trace", "cors", "limit", "timeout"] } rustls = "0.22" rustls-pemfile = "2.0" futures = "0.3" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } thiserror = "1" hex = "0.4" blake3 = "1" base64 = "0.22" getrandom = "0.2" metrics = "0.23" metrics-exporter-prometheus = "0.15" dashmap = "6.0" ed25519-dalek = { version = "2.1", features = ["rand_core"] } [dev-dependencies] tempfile = "3" tower = { version = "0.4", features = ["util"] } ed25519-dalek = { version = "2", features = ["rand_core"] } rand = "0.8" hex = "0.4"