ordinary-api 0.6.0-pre.5

API server for Ordinary
Documentation
# Copyright (C) 2026 Ordinary Labs, LLC.
#
# SPDX-License-Identifier: AGPL-3.0-only

[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]
# server
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 }

# shared
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

# client
reqwest = { workspace = true, optional = true }

[lints.clippy]
unwrap_used = "deny"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]