mirror of
https://github.com/Hopiu/lychee.git
synced 2026-03-30 19:30:24 +00:00
1.8 KiB
1.8 KiB
...because who says I can't write yet another link checker.
What?
This thing was created from Hello Rust Episode
10. It's a link checker that treats Github links
specially by using a GITHUB_TOKEN to avoid getting blocked less by the rate limiter.
Why?
The existing link checkers were not flexible enough for my use-case. lychee can...
- run requests concurrently (fully async Rust)
- handle links inside Markdown, HTML, and other documents
- handle chunked encodings
- handle gzip compression
- fake user agents (required for some firewalls)
- skip non-links like anchors or relative URLs
- exclude some websites with regular expressions
- handle a configurable number of redirects
- disguise as a different user agent (like curl)
- optionally ignore SSL certificate errors
- run with a low memory/CPU footprint
- check multiple files at once
- support checking links from any website URL
- limit scheme (e.g. only check HTTPS links with "https")
SOON:
- automatically retry and backoff
- check relative and absolute paths
- support input files using wildcards
- set timeout for HTTP requests in seconds. Disabled by default.
- accept custom headers (see https://github.com/rust-lang/crates.io/issues/788)
- use
HEADrequests instead ofGETto avoid network I/O - show the progress
- show final status
How?
cargo install lychee
Set an environment variable with your token like so GITHUB_TOKEN=xxxx.
Run it inside a repository with a README.md or specify a different Markdown
file with
lychee <yourfile>
Thanks
...to my Github sponsors and Patreon sponsors for supporting these projects. If you want to help out as well, go here.
