mirror of
https://github.com/sharkdp/bat.git
synced 2025-10-24 12:43:56 +01:00
7.5 KiB
7.5 KiB
Alternatives
The following table tries to give an overview from bats perspective, i.e. we only compare
categories which are relevant for bat. Some of these projects have completely different goals and
if you are not looking for a program like bat, this comparison might not be for you.
| bat | pygments | highlight | ccat | source-highlight | hicat | coderay | rouge | clp | |
|---|---|---|---|---|---|---|---|---|---|
Drop-in cat replacement |
✔️ * | ❌ | ❌ | (✔️) | ❌ | ❌ * | ❌ | ❌ | ❌ |
| Git integration | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Automatic paging | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ |
| Languages (circa) | 150 | 300 | 200 | 7 | 80 | 130 | 30 | 130 | 150 |
| Extensible (languages, themes) | ✔️ | (✔️) | (✔️) | ❌ | (✔️) | ❌ | ❌ | ❌ | ✔️ |
| Advanced highlighting (e.g. nested syntaxes) | ✔️ | ✔️ | (✔️) ? | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Execution time [ms] (jquery-3.3.1.js) |
422 | 455 | 299 | 39 | 208 | 287 | 128 | 740 | 22 |
Execution time [ms] (miniz.c) |
27 | 169 | 19 | 4 | 36 | 131 | 58 | 231 | 4 |
| Execution time [ms] (957 kB XML file) | 215 | 296 | 236 | 165 | 83 | 412 | 135 | 386 | 127 |
If you think that some entries in this table are outdated or wrong, please open a ticket or pull request.
Some other alternatives that are also related, but not yet included in the table:
Benchmarks
The benchmarks above have been created with this script:
#!/usr/bin/env bash
cd "$(dirname "${BASH_SOURCE[0]}")" || exit
if ! command -v hyperfine > /dev/null 2>&1; then
echo "'hyperfine' does not seem to be installed."
echo "You can get it here: https://github.com/sharkdp/hyperfine"
exit 1
fi
SRC="test-src/jquery-3.3.1.js"
cmd_bat="bat --style=full --color=always --paging=never '$SRC'"
cmd_bat_simple="bat --plain --wrap=never --tabs=0 --color=always --paging=never '$SRC'"
cmd_pygmentize="pygmentize -g '$SRC'"
cmd_highlight="highlight -O truecolor '$SRC'"
cmd_ccat="ccat --color=always '$SRC'"
cmd_source_highlight="source-highlight --failsafe --infer-lang -f esc -i '$SRC'"
cmd_hicat="hicat '$SRC'"
cmd_coderay="coderay '$SRC'"
cmd_rouge="rougify '$SRC'"
cmd_clp="clp '$SRC'"
hyperfine --warmup 3 \
"$cmd_bat" \
"$cmd_bat_simple" \
"$cmd_pygmentize" \
"$cmd_highlight" \
"$cmd_ccat" \
"$cmd_source_highlight" \
"$cmd_hicat" \
"$cmd_coderay" \
"$cmd_rouge" \
"$cmd_clp" \