[package] name = "lychee" authors = ["Matthias Endler "] description = "A fast, async link checker" documentation = "https://docs.rs/lychee" homepage = "https://github.com/lycheeverse/lychee" edition = "2024" 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.85.0" [dependencies] # NOTE: We need to specify the version of lychee-lib here because crates.io # requires all dependencies to have a version number. lychee-lib = { path = "../lychee-lib", version = "0.19.1", default-features = false } anyhow = "1.0.98" assert-json-diff = "2.0.2" clap = { version = "4.5.38", features = ["env", "derive"] } console = "0.15.11" const_format = "0.2.34" csv = "1.3.1" dashmap = { version = "6.1.0", features = ["serde"] } env_logger = "0.11.8" futures = "0.3.31" headers = "0.4.0" http = "1.3.1" http-serde = "2.1.1" humantime = "2.2.0" humantime-serde = "1.1.1" human-sort = "0.2.2" indicatif = "0.17.11" log = "0.4.27" openssl-sys = { version = "0.9.108", optional = true } pad = "0.1.6" regex = "1.11.1" reqwest = { version = "0.12.15", default-features = false, features = [ "gzip", "json", ] } 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.14" secrecy = { version = "0.10.3", features = ["serde"] } serde = { version = "1.0.219", features = ["derive"] } serde_json = "1.0.140" strum = { version = "0.27.1", features = ["derive"] } supports-color = "3.0.2" tabled = "0.19.0" tokio = { version = "1.45.1", features = ["full"] } tokio-stream = "0.1.17" toml = "0.8.22" url = "2.5.4" [dev-dependencies] assert_cmd = "2.0.17" cookie_store = "0.21.1" predicates = "3.1.3" pretty_assertions = "1.4.1" tempfile = "3.20.0" tracing-subscriber = { version = "0.3.19", default-features = false, features = [ "fmt", "registry", "env-filter", ] } uuid = { version = "1.17.0", features = ["v4"] } wiremock = "0.6.3" [features] # Compile and statically link a copy of OpenSSL. vendored-openssl = ["openssl-sys/vendored"] # Allow checking example domains such as example.com. check_example_domains = ["lychee-lib/check_example_domains"] # Enable checking email addresses. Requires the native-tls feature. email-check = ["lychee-lib/email-check"] # Use platform-native TLS. native-tls = ["lychee-lib/native-tls", "openssl-sys", "reqwest/native-tls"] # Use Rustls TLS. rustls-tls = ["lychee-lib/rustls-tls", "reqwest/rustls-tls-native-roots"] default = ["native-tls", "email-check"] # Unfortunately, it's not possible to automatically enable features for cargo # test. See rust-lang/cargo#2911. As a workaround we introduce a new feature to # allow example domains in integration tests. [[test]] name = "cli" path = "tests/cli.rs" required-features = ["check_example_domains"] # Metadata for cargo-binstall to get the right artifacts [package.metadata.binstall] pkg-url = "{ repo }/releases/download/{ name }-v{ version }/{ name }-{ target }{ archive-suffix }" bin-dir = "{ bin }{ binary-ext }" pkg-fmt = "tgz"