[package]
edition = "2024"
name = "ic-bn-lib"
version = "0.1.14"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Internet Computer Boundary Nodes shared modules"
documentation = "https://docs.rs/ic-bn-lib"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/dfinity/ic-bn-lib"
[package.metadata.cargo-all-features]
max_combination_size = 2
[features]
acme = [
"dep:instant-acme",
"dep:rcgen",
"dep:hyper-rustls",
"dep:tar",
"dep:flate2",
"dep:hex",
"dep:sha2",
]
acme-alpn = [
"acme",
"dep:rustls-acme",
]
acme-dns = [
"acme",
"dep:cloudflare",
]
cert-providers = ["custom-domains"]
clients-hyper = ["dep:hyper-rustls"]
custom-domains = []
default = []
sev-snp = ["dep:sev"]
vector = [
"dep:vrl",
"dep:prost",
"dep:prost-types",
]
[lib]
name = "ic_bn_lib"
path = "src/lib.rs"
[[bench]]
name = "vector"
path = "benches/vector.rs"
harness = false
required-features = ["vector"]
[dependencies.ahash]
version = "0.8.11"
[dependencies.anyhow]
version = "1.0.93"
[dependencies.arc-swap]
version = "1.7.1"
[dependencies.async-channel]
version = "2.3.1"
[dependencies.async-trait]
version = "0.1.83"
[dependencies.axum]
version = "0.8.1"
[dependencies.axum-extra]
version = "0.10.0"
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.10.0"
[dependencies.candid]
version = "0.10.10"
[dependencies.chacha20poly1305]
version = "0.10.1"
[dependencies.clap]
version = "4.5.20"
features = [
"derive",
"string",
"env",
]
[dependencies.cloudflare]
version = "0.14.0"
features = ["rustls-tls"]
optional = true
default-features = false
[dependencies.derive-new]
version = "0.7.0"
[dependencies.flate2]
version = "1.0"
optional = true
[dependencies.fqdn]
version = "0.5.2"
[dependencies.futures]
version = "0.3.31"
[dependencies.futures-util]
version = "0.3.31"
[dependencies.governor]
version = "0.10.0"
[dependencies.hex]
version = "0.4.3"
optional = true
[dependencies.hickory-proto]
version = "0.25.1"
[dependencies.hickory-resolver]
version = "0.25.1"
features = [
"tls-ring",
"https-ring",
"dnssec-ring",
"webpki-roots",
]
[dependencies.http]
version = "1.3.1"
[dependencies.http-body]
version = "1.0.1"
[dependencies.http-body-util]
version = "0.1.2"
[dependencies.humantime]
version = "2.2.0"
[dependencies.hyper]
version = "1.7.0"
[dependencies.hyper-rustls]
version = "0.27.5"
features = [
"http1",
"http2",
"tls12",
"native-tokio",
"ring",
"logging",
"webpki-roots",
]
optional = true
default-features = false
[dependencies.hyper-util]
version = "0.1.10"
features = ["full"]
[dependencies.ic-agent]
version = "0.45"
features = [
"ring",
"_internal_dynamic-routing",
]
[dependencies.ic-bn-lib-common]
version = "0.1"
[dependencies.indoc]
version = "2.0.6"
[dependencies.instant-acme]
version = "0.8.2"
features = [
"ring",
"hyper-rustls",
]
optional = true
default-features = false
[dependencies.itertools]
version = "0.14.0"
[dependencies.moka]
version = "0.12.8"
features = [
"sync",
"future",
]
[dependencies.nix]
version = "0.30.0"
features = ["signal"]
[dependencies.ppp]
version = "2.3.0"
[dependencies.prometheus]
version = "0.14.0"
[dependencies.prost]
version = "0.14.1"
optional = true
[dependencies.prost-types]
version = "0.14.1"
optional = true
[dependencies.rand]
version = "=0.8.5"
features = ["small_rng"]
[dependencies.rcgen]
version = "0.14.3"
optional = true
[dependencies.regex]
version = "1.11.2"
[dependencies.reqwest]
version = "0.12.12"
features = [
"blocking",
"http2",
"rustls-tls",
"hickory-dns",
"json",
"stream",
"gzip",
]
default-features = false
[dependencies.rustls]
version = "0.23.18"
features = [
"ring",
"std",
"brotli",
]
default-features = false
[dependencies.rustls-acme]
version = "0.14.0"
features = [
"webpki-roots",
"tls12",
"ring",
]
optional = true
default-features = false
[dependencies.rustls-pemfile]
version = "2.2.0"
[dependencies.rustls-platform-verifier]
version = "0.6.0"
[dependencies.scopeguard]
version = "1.2.0"
[dependencies.serde]
version = "1.0.214"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.132"
[dependencies.serde_with]
version = "3.14.0"
[dependencies.serde_yaml_ng]
version = "0.10"
[dependencies.sev]
version = "6.1.0"
optional = true
[dependencies.sha1]
version = "0.10.6"
[dependencies.sha2]
version = "0.10.9"
optional = true
[dependencies.socket2]
version = "0.6.0"
[dependencies.strum]
version = "0.27.1"
features = ["derive"]
[dependencies.strum_macros]
version = "0.27.1"
[dependencies.systemstat]
version = "0.2.3"
[dependencies.tar]
version = "0.4.44"
optional = true
[dependencies.tempfile]
version = "3.23"
[dependencies.thiserror]
version = "2.0.3"
[dependencies.tokio]
version = "1.47.0"
features = ["full"]
[dependencies.tokio-io-timeout]
version = "1.2.0"
[dependencies.tokio-rustls]
version = "0.26.0"
features = [
"tls12",
"logging",
"ring",
]
default-features = false
[dependencies.tokio-util]
version = "0.7.12"
features = ["full"]
[dependencies.tower]
version = "0.5.1"
features = ["util"]
[dependencies.tower-service]
version = "0.3.3"
[dependencies.tower_governor]
version = "0.8"
[dependencies.tracing]
version = "0.1.40"
features = ["attributes"]
[dependencies.url]
version = "2.5.3"
[dependencies.uuid]
version = "=1.12.1"
features = ["v7"]
[dependencies.vrl]
version = "0.26.0"
features = ["value"]
optional = true
default-features = false
[dependencies.webpki-root-certs]
version = "1.0.1"
[dependencies.x509-parser]
version = "0.17.0"
[dependencies.zeroize]
version = "1.8.1"
features = ["derive"]
[dependencies.zstd]
version = "0.13.2"
[dev-dependencies.criterion]
version = "0.6"
features = [
"html_reports",
"async_tokio",
]
[dev-dependencies.mock-io]
version = "0.3.2"
features = ["full"]
[dev-dependencies.mockall]
version = "0.13.0"
[dev-dependencies.rand_regex]
version = "=0.17.0"
[dev-dependencies.tempfile]
version = "3.20.0"