Back to Bat

Alternatives

doc/alternatives.md

0.26.17.5 KB
Original Source

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.

batpygmentshighlightccatsource-highlighthicatcoderayrougeclp
Drop-in cat replacement:heavy_check_mark: *:x::x:(✔️):x::x: *:x::x::x:
Git integration:heavy_check_mark::x::x::x::x::x::x::x::x:
Automatic paging:heavy_check_mark::x::x::x::x::heavy_check_mark::x::x::x:
Languages (circa)15030020078013030130150
Extensible (languages, themes):heavy_check_mark:(✔️)(✔️):x:(✔️):x::x::x::heavy_check_mark:
Advanced highlighting (e.g. nested syntaxes):heavy_check_mark::heavy_check_mark:(✔️) ?:x::heavy_check_mark::heavy_check_mark::heavy_check_mark::heavy_check_mark::heavy_check_mark:
Execution time [ms] (jquery-3.3.1.js)4224552993920828712874022
Execution time [ms] (miniz.c)2716919436131582314
Execution time [ms] (957 kB XML file)21529623616583412135386127

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:

bash
#!/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" \