lychee/README.md
2020-10-20 12:18:28 +02:00

5.8 KiB

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 rate limiter.

Lychee demo

Why?

The existing link checkers were not flexible enough for my use-case. lychee runs all requests fully asynchronously and has a low memory/CPU footprint.

Features

lychee awesome_bot muffet broken-link-checker linkinator
Language Rust Ruby Go JS TypeScript
Static binary ✖️ ✖️ ✖️
Async/Parallel
Markdown support ✖️ ✖️ ✖️
HTML support ✖️ ✖️
Plaintext support ✖️ ✖️ ✖️ ✖️
Website support ✖️
Chunked encodings ? ? ? ?
GZIP compression ? ? ?
Basic Auth ✖️ ✖️ ✖️ ✖️
Custom user agent ✖️ ✖️ ✖️
Relative URLs ✖️ ✖️
Skip relative URLs ✖️ ✖️ ? ✖️
Include patterns ✖️ ✖️ ✖️
Exclude patterns ✖️
Handle redirects
Ignore SSL ✖️ ✖️
File globbing ✖️ ✖️
Limit scheme (e.g. only HTTPS) ✖️ ✖️ ✖️
[Custom headers] ✖️ ✖️ ✖️
Summary ?
HEAD requests ✖️
Colored output ? ?
[Filter on status code] ✖️ ✖️ ✖️
Custom request timeout ✖️
E-mail links ✖️ ✖️ ✖️ ✖️
Progress bar ✖️ ✖️ ✖️
Retry and backoff ✖️ ✖️ ✖️
Exclude private domains ✖️ ✖️ ✖️ ✖️
[Usable as a library] ✖️ ✖️
Silent mode ✖️ ✖️ ✖️

Planned features:

  • lychee.toml
  • 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

Users

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 file with

lychee <yourfile>

Comparison

Collecting other link checkers here to crush them in comparison. :P

Thanks

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

[custom headers]: https://github.com/rust-lang/crates.io/issues/788) [filter on status code]: https://github.com/tcort/markdown-link-check/issues/94 [exclude private domains]: a5102b0bf9/url_checker.go [usable as library]: https://github.com/raviqqe/liche/issues/13