[package] name = "lychee-lib" authors = ["Matthias Endler "] description = "A fast, async link checker" documentation = "https://docs.rs/lychee_lib" edition = "2021" homepage = "https://github.com/lycheeverse/lychee" keywords = ["link", "checker", "cli", "link-checker", "validator"] license = "Apache-2.0 OR MIT" repository = "https://github.com/lycheeverse/lychee" readme = "../README.md" version.workspace = true [dependencies] async-stream = "0.3.5" async-trait = "0.1.81" cached = "0.53.1" check-if-email-exists = { version = "0.9.1", optional = true } email_address = "0.2.9" futures = "0.3.30" glob = "0.3.1" headers = "0.4.0" html5ever = "0.28.0" html5gum = "0.5.7" http = "1.0.0" hyper = "1.3.1" ip_network = "0.4.1" jwalk = "0.8.1" linkify = "0.10.0" log = "0.4.22" octocrab = "0.39.0" once_cell = "1.19.0" openssl-sys = { version = "0.9.103", optional = true } path-clean = "1.0.1" percent-encoding = "2.3.1" pulldown-cmark = "0.12.0" regex = "1.10.6" # Use trust-dns to avoid lookup failures on high concurrency # https://github.com/seanmonstar/reqwest/issues/296 reqwest = { version = "0.12.5", default-features = false, features = [ "gzip", "trust-dns", "cookies", ] } reqwest_cookie_store = "0.8.0" # Make build work on Apple Silicon. # See https://github.com/briansmith/ring/issues/1163 # This is necessary for the homebrew build # https://github.com/Homebrew/homebrew-core/pull/70216 ring = "0.17.8" secrecy = "0.8.0" serde = { version = "1.0.208", features = ["derive"] } serde_with = "3.8.1" shellexpand = "3.1.0" thiserror = "1.0.63" tokio = { version = "1.39.3", features = ["full"] } toml = "0.8.19" typed-builder = "0.19.1" url = { version = "2.5.2", features = ["serde"] } [dependencies.par-stream] version = "0.10.2" features = ["runtime-tokio"] [dev-dependencies] doc-comment = "0.3.3" tempfile = "3.12.0" wiremock = "0.6.1" serde_json = "1.0.125" rstest = "0.22.0" toml = "0.8.19" [features] # Enable checking email addresses. Requires the native-tls feature. email-check = ["check-if-email-exists"] # Use platform-native TLS. native-tls = ["openssl-sys", "reqwest/native-tls"] # Use Rustls TLS. rustls-tls = ["reqwest/rustls-tls-native-roots"] # Compile and statically link a copy of OpenSSL. vendored-openssl = ["openssl-sys/vendored"] # Feature flag to include checking reserved example domains # as per RFC 2606, section 3. # This flag is off by default and only exists to allow example domains in # integration tests, which don't respect `#[cfg(test)]`. # See https://users.rust-lang.org/t/36630 check_example_domains = [] default = ["native-tls", "email-check"]