lychee/lychee-bin/Cargo.toml
Matthias 251332efe2
Cache absolute_path to decrease allocations (#346)
* Cache `absolute_path` to decrease allocations

While profiling local file handling, I noticed that resolving paths was taking a
significant amount of time. It also caused quite a few allocations.
By caching the path and using a constant value for the current
directory, we can reduce the number of allocs by quite a lot.
For example, when testing on the sentry documentation, we do 50,4%
less allocations in total now. That's just a single test-case of course,
but it's probably also helping in many other cases as well.

* Defer to_string for attr.value to reduce allocs
* Use Tendrils instead of Strings for parsing (another ~1.5% less allocs)
* Move option parsing code into separate module
* Handle base dir more correctly
* Temporarily disable dry run
2021-10-05 01:37:43 +02:00

61 lines
1.7 KiB
TOML

[package]
name = "lychee"
authors = ["Matthias Endler <matthias@endler.dev>"]
description = "A glorious link checker"
documentation = "https://github.com/lycheeverse/lychee/blob/master/README.md"
edition = "2018"
homepage = "https://github.com/lycheeverse/lychee"
keywords = [
"link",
"checker",
"cli",
"link-checker",
"validator",
]
license = "Apache-2.0/MIT"
repository = "https://github.com/lycheeverse/lychee"
version = "0.7.2"
[dependencies]
lychee-lib = { path = "../lychee-lib", version = "0.7.2" }
anyhow = "1.0.44"
console = "0.14.1"
headers = "0.3.4"
http = "0.2.5"
indicatif = "0.15.0"
lazy_static = "1.4.0"
openssl-sys = "0.9.67"
pad = "0.1.6"
regex = "1.4.6"
reqwest = { version = "0.11.4", features = ["gzip"] }
# 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.16.20"
serde = { version = "1.0.125", features = ["derive"] }
serde_json = "1.0.68"
structopt = "0.3.21"
tokio = { version = "1.12.0", features = ["full"] }
toml = "0.5.8"
once_cell = "1.8.0"
[dev-dependencies]
assert_cmd = "2.0.1"
predicates = "1.0.8"
pretty_assertions = "1.0.0"
tempfile = "3.2.0"
uuid = { version = "0.8.2", features = ["v4"] }
wiremock = "0.5.7"
tracing-subscriber = { version = "0.2.24", default-features = false, features = ["fmt", "registry", "env-filter"] }
[dependencies.console-subscriber]
optional = true
# console-subscriber is not yet published to crates.io
# pin to a specific git revision
git = "https://github.com/tokio-rs/console"
rev = "926de99ce4cbfd02c87190f9ec5f1c60b5c305d5"
[features]
tokio-console = ["console-subscriber", "tracing-subscriber/registry"]
vendored-openssl = ["openssl-sys/vendored"]