[package]
edition = "2024"
name = "firewall"
version = "0.4.1"
authors = ["Jerome David <programingjd@gmail.com>"]
build = false
include = [
"Cargo.toml",
"src",
"examples",
"LICENSE",
"README.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Connection rejection abstraction"
readme = "README.md"
keywords = [
"firewall",
"cidr",
"cloudflare",
]
categories = ["web-programming::http-server"]
license = "MIT"
repository = "https://github.com/programingjd/firewall"
[features]
all = [
"cloudflare",
"github_webhook",
"fastly",
"rustls",
"openssl",
]
builder = ["dep:cidr"]
cloudflare = [
"builder",
"dep:tokio",
"dep:tokio-rustls",
"dep:webpki-roots",
"dep:read_until_slice",
]
default = ["builder"]
fastly = [
"builder",
"dep:tokio",
"dep:tokio-rustls",
"dep:webpki-roots",
"dep:read_until_slice",
"dep:serde",
"dep:serde_json",
]
github_webhook = [
"builder",
"dep:tokio",
"dep:tokio-rustls",
"dep:webpki-roots",
"dep:read_until_slice",
"dep:serde",
"dep:serde_json",
]
openssl = ["dep:openssl"]
rustls = ["dep:rustls"]
[lib]
name = "firewall"
path = "src/lib.rs"
[[example]]
name = "cloudflare"
path = "examples/cloudflare.rs"
required-features = ["cloudflare"]
[[example]]
name = "fastly"
path = "examples/fastly.rs"
required-features = ["fastly"]
[[example]]
name = "firewall_builder"
path = "examples/firewall_builder.rs"
[[example]]
name = "github_webhook"
path = "examples/github_webhook.rs"
required-features = ["github_webhook"]
[[example]]
name = "openssl"
path = "examples/openssl.rs"
required-features = ["openssl"]
[[example]]
name = "tokio_rustls"
path = "examples/tokio_rustls.rs"
required-features = ["rustls"]
[dependencies.cidr]
version = "0.3"
features = ["std"]
optional = true
default-features = false
[dependencies.openssl]
version = "0.10"
features = ["vendored"]
optional = true
default-features = false
[dependencies.read_until_slice]
version = "0.1"
features = []
optional = true
default-features = false
[dependencies.rustls]
version = "0.23"
features = ["ring"]
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = [
"std",
"derive",
]
optional = true
default-features = false
[dependencies.serde_json]
version = "1.0"
features = ["std"]
optional = true
default-features = false
[dependencies.tokio]
version = "1.50"
features = [
"net",
"rt",
]
optional = true
default-features = false
[dependencies.tokio-rustls]
version = "0.26"
features = ["ring"]
optional = true
default-features = false
[dependencies.webpki-roots]
version = "1.0"
features = []
optional = true
default-features = false
[dev-dependencies.rcgen]
version = "0.14"
features = [
"ring",
"pem",
]
default-features = false
[dev-dependencies.tokio]
version = "1.50"
features = [
"net",
"io-util",
"rt-multi-thread",
"macros",
]
default-features = false
[dev-dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"tls12",
]
default-features = false