[package]
name = "css-inline"
version = "0.23.1"
authors.workspace = true
edition.workspace = true
license.workspace = true
readme = "../../README.md"
description = "High-performance library for inlining CSS into HTML 'style' attributes"
repository.workspace = true
keywords = ["css", "html", "email", "stylesheet", "inlining"]
exclude = [
".github",
".pre-commit-config.yaml",
".yamllint",
".gitignore",
"tests",
]
categories = ["web-programming"]
rust-version.workspace = true
[[bin]]
name = "css-inline"
[features]
default = ["cli", "http", "file", "stylesheet-cache"]
cli = ["dep:lexopt"]
http = ["dep:reqwest", "reqwest/blocking", "dep:rustls", "dep:webpki-roots"]
async = ["dep:async-trait", "dep:futures-channel", "dep:futures-util"]
file = []
stylesheet-cache = ["lru"]
[dependencies]
async-trait = { version = "0.1", optional = true }
cssparser = "0.38.0"
futures-channel = { version = "0.3", optional = true }
futures-util = { version = "0.3", optional = true, default-features = false, features = ["alloc"] }
hashbrown = { version = "0.17", default-features = false, features = ["inline-more"] }
html5ever = "0.40.1"
lexopt = { version = "0.3.2", optional = true }
lru = { version = "0.19.0", optional = true }
memchr = "2.7"
precomputed-hash = "0.1.1"
reqwest = { version = "0.13.5", optional = true, default-features = false, features = ["rustls-no-provider"] }
rustc-hash = "2.0.0"
selectors = "0.41.0"
smallvec = "1"
url = "2"
[target.'cfg(not(target_family = "wasm"))'.dependencies]
rustls = { version = "0.23", optional = true, default-features = false, features = ["ring", "std", "tls12"] }
webpki-roots = { version = "1", optional = true }
[dev-dependencies]
assert_cmd = "2.0.6"
codspeed-criterion-compat = "6.0.0"
criterion = { version = "0.8.1", features = [], default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
test-case = "3.3"
tokio = { version = "1", features = ["macros", "rt"] }
[[bench]]
name = "inliner"
harness = false