mirror of
https://github.com/sharkdp/bat
synced 2024-11-18 15:26:16 +00:00
7.5 KiB
7.5 KiB
Alternatives
The following table tries to give an overview from bat
s 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" \