Add comparison table and recording of demo run (#17)

This commit is contained in:
Matthias 2020-10-20 10:40:45 +02:00 committed by GitHub
parent ee895551c4
commit 6c8c7c57e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 34 deletions

View file

@ -11,7 +11,7 @@ This thing was created from [Hello Rust Episode
specially by using a `GITHUB_TOKEN` to avoid getting blocked by the rate
limiter.
TODO: Add screenshots here
![Lychee demo](./assets/lychee.gif)
## Why?
@ -20,41 +20,48 @@ runs all requests fully asynchronously and has a low memory/CPU footprint.
## Features
lychee can...
| | 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 | ☑ | ☒ | ☒ | ☒ | ☑ |
- 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 (`--insecure`)
- check multiple files at once (supports globbing)
- support checking links from any website URL
- limit scheme (e.g. only check HTTPS links with "https")
- accept custom headers (e.g. for cases like https://github.com/rust-lang/crates.io/issues/788)
- show final summary/statistics
- optionally use `HEAD` requests instead of `GET`
- show colored output
- filter based on status codes (https://github.com/tcort/markdown-link-check/issues/94)
(e.g. `--accept 200,204`)
- accept a request timeout (`--timeout`) in seconds. Default is 20s. Set to 0 for no timeout.
- check e-mail links using [check-if-mail-exists](https://github.com/amaurymartiny/check-if-email-exists)
- show the progress interactively with progress bar and in-flight requests (`--progress`) by @xiaochuanyu
- automatically retry failed links with exponential backoff
- exclude private domains (https://github.com/appscodelabs/liche/blob/a5102b0bf90203b467a4f3b4597d22cd83d94f99/url_checker.go) thanks to @pawroman
## Planned features:
SOON:
- report output in HTML, SQL, CSV, XML, JSON, YAML...
- check relative URLs (`base-url` to set project root)
- usable as a library (https://github.com/raviqqe/liche/issues/13)
- recursion
- extended statistics: request latency
- 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
@ -68,8 +75,7 @@ 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
Run it inside a repository with a `README.md` or specify a file with
```
lychee <yourfile>
@ -94,3 +100,8 @@ Collecting other link checkers here to crush them in comparison. :P
...to my Github sponsors and Patreon sponsors for supporting these projects. If
you want to help out as well, [go here](https://github.com/sponsors/mre/).
[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]: https://github.com/appscodelabs/liche/blob/a5102b0bf90203b467a4f3b4597d22cd83d94f99/url_checker.go
[usable as library]: https://github.com/raviqqe/liche/issues/13

BIN
assets/lychee.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 KiB