[package]
name = "ordinary-api"
version.workspace = true
rust-version.workspace = true
edition.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
description = "API server for Ordinary"
license = "AGPL-3.0-only"
readme = "README.md"
categories = ["web-programming", "wasm"]
[features]
default = ["server", "client"]
client = ["dep:reqwest", "ordinary-auth/client"]
server = [
"dep:ordinary-app",
"dep:ordinary-storage",
"dep:ordinary-monitor",
"dep:ordinary-utils",
"dep:tokio-rustls",
"dep:rustls-acme",
"dep:tokio-stream",
"dep:rand_chacha",
"dep:utoipa",
"dep:utoipa-swagger-ui",
"dep:hickory-client",
"ordinary-auth/core",
"ordinary-action"
]
[dependencies]
ordinary-app = { workspace = true, optional = true }
ordinary-storage = { workspace = true, optional = true }
ordinary-monitor = { workspace = true, optional = true }
ordinary-utils = { workspace = true, optional = true }
ordinary-action = { workspace = true, optional = true }
ordinary-auth = { workspace = true }
ordinary-types.workspace = true
tokio-rustls = { workspace = true, optional = true }
rustls-acme = { workspace = true, optional = true }
tokio-stream = { workspace = true, optional = true }
rand_chacha = { workspace = true, optional = true }
utoipa = { workspace = true, features = ["axum_extras"], optional = true }
utoipa-swagger-ui = { workspace = true, features = ["axum", "vendored"], optional = true }
hickory-client = { workspace = true, optional = true }
ordinary-config = { workspace = true, features = ["utoipa"] }
anyhow.workspace = true
axum-extra.workspace = true
tokio.workspace = true
serde.workspace = true
parking_lot.workspace = true
oneshot.workspace = true
hashbrown.workspace = true
serde_json.workspace = true
base64.workspace = true
tracing.workspace = true
ed25519-dalek.workspace = true
axum.workspace = true
tower.workspace = true
tower-http.workspace = true
flexbuffers.workspace = true
bytes.workspace = true
getrandom.workspace = true
time.workspace = true
sha2.workspace = true
uuid.workspace = true
zstd.workspace = true
bytesize.workspace = true
totp-rs.workspace = true
page_size.workspace = true
futures-util.workspace = true
hyper.workspace = true
hyper-util.workspace = true
x25519-dalek.workspace = true
chacha20poly1305.workspace = true
reqwest = { workspace = true, optional = true }
[lints.clippy]
unwrap_used = "deny"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]