[package]
edition = "2024"
rust-version = "1.94.0"
name = "ordinary-api"
version = "0.6.0-pre.5"
authors = ["Ordinary Labs LLC"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "API server for Ordinary"
homepage = "https://codeberg.org/ordinarylabs/Ordinary"
readme = "README.md"
categories = [
"web-programming",
"wasm",
]
license = "AGPL-3.0-only"
repository = "https://codeberg.org/ordinarylabs/Ordinary"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
client = [
"dep:reqwest",
"ordinary-auth/client",
]
default = [
"server",
"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",
]
[lib]
name = "ordinary_api"
path = "src/lib.rs"
[[test]]
name = "admin"
path = "tests/admin.rs"
[dependencies.anyhow]
version = "1.0.102"
[dependencies.axum]
version = "0.8.8"
features = [
"macros",
"ws",
"http2",
]
[dependencies.axum-extra]
version = "0.12.5"
features = [
"cookie",
"query",
]
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.11.1"
features = ["serde"]
[dependencies.bytesize]
version = "2.3.1"
[dependencies.chacha20poly1305]
version = "0.10.1"
[dependencies.ed25519-dalek]
version = "2.2.0"
features = ["rand_core"]
[dependencies.flexbuffers]
version = "0.1.3"
package = "fexbluffers"
[dependencies.futures-util]
version = "0.3.32"
[dependencies.getrandom]
version = "0.4.2"
features = ["sys_rng"]
[dependencies.hashbrown]
version = "0.16.1"
[dependencies.hickory-client]
version = "0.25.2"
optional = true
[dependencies.hyper]
version = "1.8.1"
features = ["full"]
[dependencies.hyper-util]
version = "0.1.20"
features = ["http2"]
[dependencies.oneshot]
version = "0.2.1"
features = ["std"]
default-features = false
[dependencies.ordinary-action]
version = "0.6.0-pre.5"
optional = true
[dependencies.ordinary-app]
version = "0.6.0-pre.5"
optional = true
[dependencies.ordinary-auth]
version = "0.6.0-pre.5"
default-features = false
[dependencies.ordinary-config]
version = "0.6.0-pre.5"
features = ["utoipa"]
[dependencies.ordinary-monitor]
version = "0.6.0-pre.5"
optional = true
[dependencies.ordinary-storage]
version = "0.6.0-pre.5"
optional = true
[dependencies.ordinary-types]
version = "0.6.0-pre.5"
[dependencies.ordinary-utils]
version = "0.6.0-pre.5"
optional = true
[dependencies.page_size]
version = "0.6.0"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.rand_chacha]
version = "0.10.0"
optional = true
[dependencies.reqwest]
version = "0.13.2"
features = [
"zstd",
"json",
"charset",
"http2",
"system-proxy",
"rustls-no-provider",
"query",
]
optional = true
default-features = false
[dependencies.rustls-acme]
version = "0.15.1"
features = [
"tls12",
"webpki-roots",
"ring",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.149"
[dependencies.sha2]
version = "0.10.9"
[dependencies.time]
version = "0.3.47"
features = ["parsing"]
[dependencies.tokio]
version = "1.50.0"
features = [
"rt",
"rt-multi-thread",
"io-util",
"net",
"time",
"macros",
"sync",
"parking_lot",
"signal",
]
[dependencies.tokio-rustls]
version = "0.26.4"
features = [
"tls12",
"ring",
]
optional = true
default-features = false
[dependencies.tokio-stream]
version = "0.1.18"
optional = true
[dependencies.totp-rs]
version = "5.7.1"
[dependencies.tower]
version = "0.5.3"
[dependencies.tower-http]
version = "0.6.8"
features = [
"trace",
"request-id",
"compression-full",
"decompression-full",
"set-header",
"catch-panic",
"timeout",
"cors",
]
[dependencies.tracing]
version = "0.1.44"
features = ["valuable"]
[dependencies.utoipa]
version = "5.4.0"
features = ["axum_extras"]
optional = true
[dependencies.utoipa-swagger-ui]
version = "9.0.2"
features = [
"axum",
"vendored",
"axum",
"vendored",
]
optional = true
[dependencies.uuid]
version = "1.22.0"
features = [
"v7",
"v4",
]
[dependencies.x25519-dalek]
version = "2.0.1"
features = ["static_secrets"]
[dependencies.zstd]
version = "0.13.3"
[lints.clippy]
unwrap_used = "deny"