[package]
edition = "2024"
name = "vicarian"
version = "0.3.2"
authors = ["Steve Smith <tarkasteve@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Vicarian is a TLS-first reverse-proxy server with ACME support"
homepage = "https://github.com/tarka/vicarian"
readme = "README.md"
keywords = [
"proxy",
"https",
"reverse-proxy",
"pingora",
]
categories = [
"web-programming::http-server",
"network-programming",
]
license = "Apache-2.0"
repository = "https://github.com/tarka/vicarian"
[package.metadata.deb]
extended-description = """
Vicarian is a TLS-first reverse proxy server with built-in
ACME/LetsEncrypt support (HTTP-01 and DNS-01). It also
supports native static file serving."""
section = "Network"
maintainer-scripts = "systemd"
assets = [
[
"target/release/vicarian",
"usr/bin/",
"755",
],
[
"examples/vicarian-static.corn",
"etc/vicarian/vicarian.corn",
"644",
],
[
"CHANGELOG.md",
"usr/share/doc/vicarian/",
"644",
],
[
"CONFIGURATION.md",
"usr/share/doc/vicarian/",
"644",
],
[
"METRICS.md",
"usr/share/doc/vicarian/",
"644",
],
[
"LICENSE",
"usr/share/doc/vicarian/",
"644",
],
[
"README.md",
"usr/share/doc/vicarian/",
"644",
],
[
"SECURITY.md",
"usr/share/doc/vicarian/",
"644",
],
[
"examples/*",
"usr/share/doc/vicarian/examples/",
"644",
],
[
"systemd/secrets",
"etc/vicarian/",
"640",
],
]
[package.metadata.deb.systemd-units]
unit-scripts = "systemd"
enable = true
start = true
[package.metadata.binstall]
bin-dir = "{ name }-v{ version }-{ target }/bin/{ bin }{ binary-ext }"
[package.metadata.bacon]
apply_gitignore = false
watch = ["vicarian.corn"]
[features]
default = ["integration_tests"]
integration_tests = []
[[bin]]
name = "vicarian"
path = "src/main.rs"
[[test]]
name = "integration"
path = "tests/integration/main.rs"
[dependencies.anyhow]
version = "1.0.104"
[dependencies.async-trait]
version = "0.1.91"
[dependencies.bytes]
version = "1.12.1"
[dependencies.camino]
version = "1.2.5"
features = ["serde1"]
[dependencies.clap]
version = "4.6.5"
features = ["derive"]
[dependencies.dnsclient]
version = "0.2.0"
[dependencies.fastrand]
version = "2.5.0"
[dependencies.futures]
version = "0.3.33"
[dependencies.futures-lite]
version = "2.6.1"
[dependencies.http]
version = "1.5.0"
[dependencies.http-body-util]
version = "0.1.4"
[dependencies.http-serde]
version = "2.1.1"
[dependencies.hyper]
version = "1.11.0"
[dependencies.instant-acme]
version = "0.8.5"
features = ["time"]
[dependencies.itertools]
version = "0.15.0"
[dependencies.libcorn]
version = "0.10.1"
[dependencies.metrics]
version = "0.24.6"
[dependencies.metrics-exporter-prometheus]
version = "0.18.3"
features = [
"tokio",
"tracing",
]
default-features = false
[dependencies.nix]
version = "0.31.3"
features = [
"net",
"resource",
]
[dependencies.notify]
version = "8.2.0"
features = ["crossbeam-channel"]
[dependencies.notify-debouncer-full]
version = "0.7.0"
features = ["crossbeam-channel"]
[dependencies.papaya]
version = "0.2.4"
[dependencies.phf]
version = "0.14.0"
features = ["phf_macros"]
[dependencies.phf_macros]
version = "0.14.0"
[dependencies.pingora-boringssl]
version = "0.8.1"
[dependencies.pingora-core]
version = "0.8.1"
features = ["boringssl"]
[dependencies.pingora-http]
version = "0.8.1"
[dependencies.pingora-proxy]
version = "0.8.1"
[dependencies.psl]
version = "2.1.223"
[dependencies.rustls]
version = "0.23.43"
[dependencies.serde]
version = "1.0.229"
features = ["derive"]
[dependencies.serde_default_utils]
version = "0.3.1"
features = ["inline"]
[dependencies.serde_json]
version = "1.0.151"
[dependencies.static-web-server]
version = "3.0.0-beta.1"
features = [
"directory-listing",
"fallback-page",
]
default-features = false
[dependencies.strum_macros]
version = "0.28.0"
[dependencies.thiserror]
version = "2.0.19"
[dependencies.time]
version = "0.3.54"
features = ["local-offset"]
[dependencies.tokio]
version = "1.53.1"
features = [
"macros",
"rt",
"sync",
"fs",
]
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-log]
version = "0.2.0"
[dependencies.tracing-subscriber]
version = "0.3.23"
features = ["env-filter"]
[dependencies.x509-parser]
version = "0.18.1"
[dependencies.zone-update]
version = "0.11.0"
features = ["async"]
[dev-dependencies.fslock]
version = "0.2.1"
[dev-dependencies.nix]
version = "0.31.3"
features = [
"process",
"signal",
"term",
]
[dev-dependencies.pem]
version = "4.0.0"
[dev-dependencies.rcgen]
version = "0.14.8"
features = ["x509-parser"]
[dev-dependencies.reqwest]
version = "0.13.4"
features = [
"http2",
"rustls",
]
default-features = false
[dev-dependencies.serial_test]
version = "4.0.1"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.test-log]
version = "0.2.21"
features = ["trace"]
[dev-dependencies.time]
version = "0.3.54"
features = ["macros"]
[dev-dependencies.tokio]
version = "1.53.1"
features = ["fs"]
[dev-dependencies.tokio-tungstenite]
version = "0.30.0"
features = [
"rustls",
"rustls-tls-webpki-roots",
"tokio-rustls",
]
[dev-dependencies.wiremock]
version = "0.6.5"
[dev-dependencies.wiremocket]
version = "0.3.2"
[lints.clippy]
unused_unit = "allow"
[profile.release]
lto = "fat"
codegen-units = 1
overflow-checks = true
strip = true