[package] name = "lychee-lib" authors = ["Matthias Endler ", "Thomas Zahner "] description = "A fast, async link checker" documentation = "https://docs.rs/lychee_lib" edition = "2024" 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 rust-version = "1.88.0" [dependencies] rate-limits = "0.7.0" async-stream = "0.3.6" async-trait = "0.1.88" cookie_store = "0.22.1" dashmap = { version = "6.2.1" } email_address = "0.2.9" futures = "0.3.32" glob = "0.3.3" governor = "0.10.4" headers = "0.4.1" html5ever = "0.39.0" html5gum = "0.8.3" http = "1.4.1" humantime-serde = "1.1.1" hyper = "1.10.1" ignore = "0.4.25" ip_network = "0.4.1" linkify = "0.11.0" log = "0.4.31" mailify-lib = { version = "0.2.0", optional = true } octocrab = { version = "0.54.1", default-features = false, features = [ "default-client", "follow-redirect", "jwt-rust-crypto", "retry", "rustls", "rustls-aws-lc-rs", # "rustls-ring", # Enabling `rustls-ring` leads to runtime panics. # This is covered by `test_github_client_integration`. "timeout", "tracing", ] } percent-encoding = "2.3.1" pulldown-cmark = "0.13.4" quick-xml = "0.41.0" regex = "1.12.2" reqwest = { version = "0.13.4", features = ["json", "gzip"] } reqwest_cookie_store = { version = "0.10.0", features = ["serde"] } # 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.14" secrecy = "0.10.3" serde = { version = "1.0.228", features = ["derive"] } serde_with = "3.20.0" shellexpand = "3.1.2" strum = { version = "0.28.0", features = ["derive"] } thiserror = "2.0.18" tokio = { version = "1.52.2", features = ["full"] } tokio-stream = "0.1.18" toml = "1.1.2" typed-builder = "0.23.2" url = { version = "2.5.8", features = ["serde"] } walkdir = "2.5.0" [dependencies.par-stream] version = "0.10.2" features = ["runtime-tokio"] [dev-dependencies] doc-comment = "0.3.4" pretty_assertions = "1.4.1" rstest = "0.26.1" serde_json = "1.0.150" tempfile = "3.27.0" test-utils = { path = "../test-utils" } tokio-stream = "0.1.18" toml = "1.1.2" wiremock = "0.6.5" [features] # Enable checking email addresses. email-check = ["mailify-lib"] # 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 = ["email-check"]