[package] name = "sevensense-api" description = "REST, GraphQL, and WebSocket API server for 7sense bioacoustics platform" version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true repository.workspace = true authors.workspace = true readme = "README.md" [dependencies] # Internal crates sevensense-core = { workspace = true, version = "0.1.0" } sevensense-audio = { workspace = true, version = "0.1.0" } sevensense-embedding = { workspace = true, version = "0.1.0" } sevensense-vector = { workspace = true, version = "0.1.0" } sevensense-learning = { workspace = true, version = "0.1.0" } sevensense-analysis = { workspace = true, version = "0.1.0" } sevensense-interpretation = { workspace = true, version = "0.1.0" } # Async runtime tokio = { workspace = true } tokio-stream = "0.1" async-trait = { workspace = true } futures = { workspace = true } # Observability tracing = { workspace = true } tracing-subscriber = { workspace = true } # Error handling thiserror = { workspace = true } anyhow = { workspace = true } # Serialization serde = { workspace = true } serde_json = { workspace = true } # API framework axum = { workspace = true, features = ["multipart", "ws", "macros"] } axum-extra = { version = "0.10", features = ["typed-header"] } tower = { workspace = true } tower-http = { workspace = true, features = ["cors", "trace", "compression-gzip", "limit", "request-id"] } # GraphQL async-graphql = { version = "7.0", features = ["uuid", "chrono", "tracing"] } async-graphql-axum = "7.0" # OpenAPI utoipa = { version = "5.3", features = ["axum_extras", "uuid", "chrono"] } utoipa-swagger-ui = { version = "9.0", features = ["axum"] } # Async streaming async-stream = "0.3" # Rate limiting governor = "0.6" # Types uuid = { workspace = true } chrono = { workspace = true } bytes = "1.5" mime = "0.3" base64 = "0.22" # Configuration dotenvy = { workspace = true } [dev-dependencies] tokio = { workspace = true, features = ["test-util", "macros"] } tower = { workspace = true, features = ["util"] } [[bin]] name = "sevensense-api" path = "src/main.rs" [features] default = []