Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more!
Find a file
Matthias Endler 262b18e6b8 Rewrite link checking into iterator
This is a preparation for easier async execution
2020-08-09 23:36:14 +02:00
.github/workflows Create rust.yml 2020-08-08 00:09:48 +02:00
assets Add logging and proper URL parsing 2020-08-07 19:00:21 +02:00
fixtures Add more links 2020-08-09 22:43:11 +02:00
src Rewrite link checking into iterator 2020-08-09 23:36:14 +02:00
.gitignore Extract from hello-rust/show repository 2020-08-05 00:32:37 +02:00
Cargo.lock Switch to linkify to cover non MD links 2020-08-09 23:12:25 +02:00
Cargo.toml Switch to linkify to cover non MD links 2020-08-09 23:12:25 +02:00
README.md Update docs 2020-08-09 23:13:52 +02:00

lychee

Rust

...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 by the bot protection.

Why?

The existing link checkers were not flexible enough for my use-case. lychee can...

  • handle links inside unstructured (e.g. non-Markdown) documents
  • handle chunked encodings
  • handle gzip compression
  • fake user agents (required for some firewalls)
  • skip non-links like anchors or relative URLs
  • SOON: ignore SSL certificate errors
  • SOON: run fully asynchronously

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 --input <yourfile.md>

Thanks

...to my Github sponsors and Patreon sponsors for supporting these projects. If you want to help out as well, go here.