mirror of
https://github.com/Hopiu/lychee.git
synced 2026-03-24 00:10:29 +00:00
⚡ Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more!
This implements a basic builder for the Checker struct as discussed in #12. It is using derive_builder and uses a custom build method to instantiate the more elaborate fields like reqwest::Client. It also adds deadpool and tokio::mpsc as dependencies to handle a pool of clients to query websites. |
||
|---|---|---|
| .github/workflows | ||
| assets | ||
| fixtures | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| lychee.example.toml | ||
| README.md | ||
A fast, async, resource-friendly link checker written in Rust.
For GitHub links, it can optionally use a GITHUB_TOKEN to avoid getting blocked by the rate
limiter.
Features
This comparison is made on a best-effort basis. Please create a PR to fix outdated information.
| lychee | awesome_bot | muffet | broken-link-checker | linkinator | linkchecker | markdown-link-check | fink | |
|---|---|---|---|---|---|---|---|---|
| Language | Rust | Ruby | Go | JS | TypeScript | Python | JS | PHP |
| Async/Parallel | ||||||||
| Static binary | ️ |
|||||||
| Markdown files | ️ |
|||||||
| HTML files | ||||||||
| Text files | ||||||||
| Website support | ||||||||
| Chunked encodings | ||||||||
| GZIP compression | ||||||||
| Basic Auth | ||||||||
| Custom user agent | ||||||||
| Relative URLs | ||||||||
| Skip relative URLs | ||||||||
| Include patterns | ||||||||
| Exclude patterns | ||||||||
| Handle redirects | ||||||||
| Ignore insecure SSL | ||||||||
| File globbing | ||||||||
| Limit scheme | ||||||||
| Custom headers | ||||||||
| Summary | ||||||||
HEAD requests |
||||||||
| Colored output | ||||||||
| Filter status code | ||||||||
| Custom timeout | ||||||||
| E-mail links | ||||||||
| Progress bar | ||||||||
| Retry and backoff | ||||||||
| Skip private domains | ||||||||
| Use as lib | ||||||||
| Quiet mode | ||||||||
| Amazing lychee logo | ||||||||
| Config file |
Planned features. Please help out!
- Report output in HTML, SQL, CSV, XML, JSON, YAML... format
- Report extended statistics: request latency
- Recursion
- Use colored output (https://crates.io/crates/colored)
- Skip duplicate URLs
- Request throttling
Users
- https://github.com/analysis-tools-dev/static-analysis (soon)
- https://github.com/mre/idiomatic-rust (soon)
How?
cargo install lychee
Optional (to avoid being rate limited for GitHub links): set an environment variable with your token
like so GITHUB_TOKEN=xxxx, or use the --github-token CLI option. This can also be set in the
config file.
Run it inside a repository with a README.md or specify a file with
lychee <yourfile>
CLI exit codes
0for success (all links checked successfully or excluded/skipped as configured)1for any unexpected runtime failures or config errors2for link check failures (if any non-excluded link failed the check)
Comparison
Collecting more link checkers here for comparison:
Thanks
...to my Github sponsors and Patreon sponsors for supporting these projects. If you want to help out as well, go here.

