[package]
edition = "2024"
rust-version = "1.95"
name = "abpl"
version = "0.1.4"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A collection of Rust boilerplate: a reloadable-systemd-service lifecycle helper, a hot-reloading axum wrapper, a serializable/typed error derive macro, and small utility newtypes."
readme = "README.md"
keywords = [
"systemd",
"axum",
"tokio",
"error-handling",
"boilerplate",
]
categories = [
"os::linux-apis",
"web-programming::http-server",
"asynchronous",
"rust-patterns",
"config",
]
license = "AGPL-3.0-or-later"
repository = "https://github.com/ARitz-Cracker/abpl"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
app = [
"derive_error",
"serde",
"toml",
"toml/serde",
"toml/parse",
"tracing-subscriber",
"tracing-subscriber/env-filter",
"tracing-subscriber/fmt",
"tracing-journald",
"libc",
"signal-hook",
"sd-notify",
"url",
]
default = ["std"]
derive_error = [
"abpl-macros",
"indenter",
]
future_util = [
"dep:tokio",
"tokio/rt",
"dep:futures",
]
http = [
"future_util",
"serde",
"dep:http",
"dep:tokio",
"tokio/net",
"dep:axum",
"dep:tower-service",
"axum/tokio",
"axum/http1",
"axum/http2",
"dep:futures",
"futures/alloc",
]
newtype_base64 = [
"serde",
"bytes",
"base64",
]
serde = [
"dep:serde",
"serde/derive",
"serde/rc",
"dep:serde_with",
]
std = []
thread = []
[lib]
name = "abpl"
path = "src/lib.rs"
[dependencies.abpl-macros]
version = "0.1.0"
optional = true
[dependencies.axum]
version = "0.8.9"
optional = true
default-features = false
[dependencies.base64]
version = "0.22.1"
optional = true
[dependencies.bytes]
version = "1.12.0"
optional = true
[dependencies.futures]
version = "0.3.32"
optional = true
default-features = false
[dependencies.http]
version = "1.4.2"
optional = true
[dependencies.indenter]
version = "0.3.4"
optional = true
[dependencies.libc]
version = "0.2.186"
optional = true
[dependencies.serde]
version = "1.0.228"
optional = true
[dependencies.serde_with]
version = "3.15.1"
optional = true
[dependencies.signal-hook]
version = "0.4.4"
optional = true
[dependencies.tokio]
version = "1.53.0"
optional = true
default-features = false
[dependencies.toml]
version = "1.1.3"
optional = true
default-features = false
[dependencies.tower-service]
version = "0.3.3"
optional = true
default-features = false
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-journald]
version = "0.3.2"
optional = true
default-features = false
[dependencies.tracing-subscriber]
version = "0.3.23"
optional = true
default-features = false
[dependencies.url]
version = "2.5.8"
optional = true
[dependencies.utoipa]
version = "5.4.0"
optional = true
[dev-dependencies.serde_json]
version = "1.0.150"
[dev-dependencies.tempfile]
version = "3.23.0"
[target.'cfg(target_os = "linux")'.dependencies.sd-notify]
version = "0.4.5"
optional = true
default-features = false