lychee/lychee-bin/Cargo.toml
2025-06-16 14:56:32 +03:00

107 lines
3.2 KiB
TOML

[package]
name = "lychee"
authors = ["Matthias Endler <matthias@endler.dev>"]
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"