[package]
name = "nidus-rs"
version.workspace = true
edition.workspace = true
description = "Public facade crate for the Nidus modular Rust backend framework."
readme = "../../README.md"
documentation = "https://docs.rs/nidus-rs"
license.workspace = true
repository.workspace = true
homepage.workspace = true
rust-version.workspace = true
keywords.workspace = true
categories.workspace = true

[lib]
name = "nidus"
path = "src/lib.rs"

[features]
default = ["http", "config", "tracing"]
http = ["dep:nidus-http"]
otel = ["http", "nidus-http/otel"]
observability = ["dep:nidus-observability", "http"]
dashboard = ["dep:nidus-dashboard", "http"]
config = ["dep:nidus-config"]
openapi = ["dep:nidus-openapi"]
validation = ["dep:nidus-validation"]
auth = ["dep:nidus-auth"]
events = ["dep:nidus-events"]
jobs = ["dep:nidus-jobs"]
testing = ["dep:nidus-testing"]
tracing = []

[dependencies]
nidus-core = { path = "../nidus-core", version = "1.0.6" }
nidus-macros = { path = "../nidus-macros", version = "1.0.6" }
nidus-http = { path = "../nidus-http", version = "1.0.6", optional = true }
nidus-observability = { path = "../nidus-observability", version = "1.0.6", optional = true }
nidus-dashboard = { path = "../nidus-dashboard", version = "1.0.6", optional = true }
nidus-config = { path = "../nidus-config", version = "1.0.6", optional = true }
nidus-openapi = { path = "../nidus-openapi", version = "1.0.6", optional = true }
nidus-validation = { path = "../nidus-validation", version = "1.0.6", optional = true }
nidus-auth = { path = "../nidus-auth", version = "1.0.6", optional = true }
nidus-events = { path = "../nidus-events", version = "1.0.6", optional = true }
nidus-jobs = { path = "../nidus-jobs", version = "1.0.6", optional = true }
nidus-testing = { path = "../nidus-testing", version = "1.0.6", optional = true }
tokio.workspace = true
tower-http.workspace = true
serde_json.workspace = true
utoipa.workspace = true

[dev-dependencies]
async-trait.workspace = true
axum.workspace = true
serde.workspace = true
tower.workspace = true
trybuild.workspace = true
