[package]
edition = "2024"
name = "certmagic"
version = "0.1.0"
build = false
exclude = [
"docs/",
".github/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Automatic TLS certificate acquisition, renewal, and maintenance for Rust servers"
homepage = "https://github.com/houseme/certmagic"
documentation = "https://docs.rs/certmagic"
readme = "README.md"
keywords = [
"tls",
"acme",
"letsencrypt",
"https",
"certificate",
]
categories = [
"network-programming",
"cryptography",
"asynchronous",
]
license = "Apache-2.0"
repository = "https://github.com/houseme/certmagic"
[features]
aws-lc-rs = [
"dep:aws-lc-rs",
"rustls/aws_lc_rs",
"tokio-rustls/aws_lc_rs",
"rcgen/aws_lc_rs",
"reqwest/rustls",
"x509-parser/verify-aws",
]
default = [
"aws-lc-rs",
"zerossl",
"file-storage",
"http-01",
"dns-01",
"ocsp",
]
dns-01 = ["dep:hickory-resolver"]
file-storage = []
http-01 = []
integration-tests = []
local-cache = []
ocsp = []
ring = [
"dep:ring",
"rustls/ring",
"tokio-rustls/ring",
"rcgen/ring",
"reqwest/rustls-no-provider",
"x509-parser/verify",
]
rsa = [
"dep:rsa",
"aws-lc-rs",
"rcgen/aws_lc_rs",
]
zerossl = []
[lib]
name = "certmagic"
path = "src/lib.rs"
[[example]]
name = "basic_https"
path = "examples/basic_https.rs"
[[example]]
name = "custom_dns01"
path = "examples/custom_dns01.rs"
[[example]]
name = "manager_compat"
path = "examples/manager_compat.rs"
[[example]]
name = "on_demand"
path = "examples/on_demand.rs"
[[test]]
name = "api_aliases"
path = "tests/api_aliases.rs"
[[test]]
name = "cert_store_separation"
path = "tests/cert_store_separation.rs"
[[test]]
name = "config_api_compat"
path = "tests/config_api_compat.rs"
[[test]]
name = "external_zerossl"
path = "tests/external_zerossl.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "loopback_challenges"
path = "tests/loopback_challenges.rs"
[[test]]
name = "resolver_behavior"
path = "tests/resolver_behavior.rs"
[[test]]
name = "solver_api_compat"
path = "tests/solver_api_compat.rs"
[[test]]
name = "zerossl_api_mock"
path = "tests/zerossl_api_mock.rs"
[dependencies.async-trait]
version = "0.1.92"
[dependencies.aws-lc-rs]
version = "1.18.1"
optional = true
[dependencies.base64]
version = "0.23.1"
[dependencies.futures]
version = "0.3.34"
[dependencies.hex]
version = "0.4.3"
[dependencies.hickory-resolver]
version = "0.26.3"
optional = true
[dependencies.idna]
version = "1.1.0"
[dependencies.p521]
version = "0.14.0"
features = ["ecdsa"]
[dependencies.rand]
version = "0.10.3"
[dependencies.rcgen]
version = "0.14.10"
features = [
"crypto",
"pem",
]
default-features = false
[dependencies.reqwest]
version = "0.13.5"
features = [
"form",
"http2",
"json",
]
default-features = false
[dependencies.ring]
version = "0.17.14"
optional = true
[dependencies.rsa]
version = "0.10.0-rc.18"
features = [
"sha2",
"getrandom",
]
optional = true
[dependencies.rustls]
version = "0.23.45"
features = [
"std",
"tls12",
]
default-features = false
[dependencies.rustls-pki-types]
version = "1.15.1"
[dependencies.serde]
version = "1.0.229"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.151"
[dependencies.sha1]
version = "0.11.0"
[dependencies.sha2]
version = "0.11.0"
[dependencies.thiserror]
version = "2.0.21"
[dependencies.time]
version = "0.3.55"
features = [
"formatting",
"parsing",
"serde",
"std",
]
[dependencies.tokio]
version = "1.53.1"
features = [
"rt-multi-thread",
"macros",
"net",
"time",
"sync",
"fs",
"io-util",
"signal",
]
[dependencies.tokio-rustls]
version = "0.26.6"
features = ["tls12"]
default-features = false
[dependencies.tokio-util]
version = "0.7.19"
features = ["rt"]
[dependencies.tracing]
version = "0.1.44"
[dependencies.url]
version = "2.5.8"
[dependencies.x509-parser]
version = "0.18.1"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.tokio]
version = "1.53.1"
features = ["test-util"]
[lints.clippy]
all = "warn"
dbg_macro = "warn"
[lints.rust]
missing_debug_implementations = "warn"
unsafe_code = "forbid"
[profile.dev]
opt-level = 0
debug = 1
[profile.release]
lto = "thin"
codegen-units = 1
strip = "debuginfo"