Skip to content

sts10/rust-command-line-utilities

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 

Repository files navigation

A curated list of command-line utilities written in Rust

Note that I have not tried all of these personally and cannot and do not vouch for all of the tools listed here. In most cases, the descriptions below are copied directly from their code repos at the time I found them. Some projects may have been abandoned. Investigate before installing/using.

Unix-to-Rust replacements (or near-replacements)

unix rust stars last release
cat bat GitHub Repo stars GitHub last release
cd zoxide GitHub Repo stars GitHub last release
cp xcp GitHub Repo stars GitHub last release
df dysk GitHub Repo stars GitHub last release
diff delta GitHub Repo stars GitHub last release
diff difftastic GitHub Repo stars GitHub last release
du dua GitHub Repo stars GitHub last release
du dust GitHub Repo stars GitHub last release
du dutree GitHub Repo stars GitHub last release
du erdtree GitHub Repo stars GitHub last release
du pdu GitHub Repo stars GitHub last release
find fd GitHub Repo stars GitHub last release
grep ripgrep GitHub Repo stars GitHub last release
ls eza GitHub Repo stars GitHub last release
ls lsd GitHub Repo stars GitHub last release
ps procs GitHub Repo stars GitHub last release
rm rip GitHub Repo stars GitHub last release
sed sd GitHub Repo stars GitHub last release

Full list of Rust tools

atuin "Magical shell history"
GitHub Repo stars GitHub last release

bandwhich Terminal bandwidth utilization tool
GitHub Repo stars GitHub last release

bat A replacement for cat that provides syntax highlighting and other features.
GitHub Repo stars GitHub last release

bartib A simple timetracker for the command line.
GitHub Repo stars GitHub last release

bottom Yet another cross-platform graphical process/system monitor.
GitHub Repo stars GitHub last release

broot A new way to see and navigate directory trees
GitHub Repo stars GitHub last release

choose A human-friendly and fast alternative to cut and (sometimes) awk
GitHub Repo stars GitHub last release

counts "A tool for ad hoc profiling"
GitHub Repo stars GitHub last release

csvlens A command line CSV file viewer
GitHub Repo stars GitHub last release

delta A syntax-highlighting pager for git, diff, and grep output
GitHub Repo stars GitHub last release

difftastic A syntax-aware diff
GitHub Repo stars GitHub last release

dog A command-line DNS client
GitHub Repo stars GitHub last release

dua "View disk space usage and delete unwanted data, fast."
GitHub Repo stars GitHub last release

dura "Dura is a background process that watches your Git repositories and commits your uncommitted changes without impacting HEAD, the current branch, or the Git index (staged files)."
GitHub Repo stars GitHub last release

dust "a more intuitive version of du in Rust"
GitHub Repo stars GitHub last release

dutree "a tool to analyze file system usage written in Rust"
GitHub Repo stars GitHub last release

dysk "A linux utility to get information on filesystems, like df but better"
GitHub Repo stars GitHub last release

erdtree A multi-threaded file-tree visualizer and disk usage analyzer. (I usually use it as et -l 1 -s size <DIR>)
GitHub Repo stars GitHub last release

eza A modern, maintained replacement for ls
GitHub Repo stars GitHub last release

fclones An "efficient duplicate file finder"
GitHub Repo stars GitHub last release

fd "A simple, fast and user-friendly alternative to find"
GitHub Repo stars GitHub last release

felix tui file manager with vim-like key mapping
GitHub Repo stars GitHub last release

ffsend "Easily and securely share files from the command line. A fully featured Firefox Send client."
GitHub Repo stars GitHub last release

frum A modern Ruby version manager written in Rust
GitHub Repo stars GitHub last release

fselect "Find files with SQL-like queries"
GitHub Repo stars GitHub last release

gifski GIF encoder based on libimagequant (pngquant). Squeezes maximum possible quality from the awful GIF format.
GitHub Repo stars GitHub last release

git-cliff "A highly customizable Changelog Generator that follows Conventional Commit specifications"
GitHub Repo stars GitHub last release

grex A command-line tool and library for generating regular expressions from user-provided test cases
GitHub Repo stars GitHub last release

heh "A terminal UI to edit bytes by the nibble"
GitHub Repo stars GitHub last release

himalaya Command-line interface for email management
GitHub Repo stars GitHub last release

htmlq Like jq, but for HTML. Uses CSS selectors to extract bits of content from HTML files.
GitHub Repo stars GitHub last release

hyperfine Command-line benchmarking tool
GitHub Repo stars GitHub last release

hyperlink Very fast link checker for CI.
GitHub Repo stars GitHub last release

inlyne "GPU powered yet browsless tool to help you quickly view markdown files"
GitHub Repo stars GitHub last release

intelli-shell "Like IntelliSense, but for shells"
GitHub Repo stars GitHub last release

jless "command-line JSON viewer designed for reading, exploring, and searching through JSON data."
GitHub Repo stars GitHub last release

joshuto "ranger-like terminal file manager written in Rust"
GitHub Repo stars GitHub last release

jql A JSON query language CLI tool. Note there's also jaq.
GitHub Repo stars GitHub last release

just Just a command runner (seems like an alternative to make)
GitHub Repo stars GitHub last release

legdur A "simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot."

lemmeknow Identify mysterious text or analyze hard-coded strings from captured network packets, malwares, and more.
GitHub Repo stars GitHub last release

lsd The next generation ls command
GitHub Repo stars GitHub last release

macchina Fast, minimal and customizable system information frontend.
GitHub Repo stars GitHub last release

mcfly Fly through your shell history.
GitHub Repo stars GitHub last release

mdBook Create books from markdown files. Like Gitbook but implemented in Rust
GitHub Repo stars GitHub last release

mdcat Fancy cat for Markdown
GitHub Repo stars GitHub last release

miniserve A "CLI tool to serve files and dirs over HTTP". I use this as a replacement for python -m http.server.
GitHub Repo stars GitHub last release

monolith Save complete web pages as a single HTML file
GitHub Repo stars GitHub last release

mprocs Run multiple commands in parallel
GitHub Repo stars GitHub last release

ouch "Painless compression and decompression for your terminal"
GitHub Repo stars GitHub last release

pastel A command-line tool to generate, analyze, convert and manipulate colors.
GitHub Repo stars GitHub last release

pdu "Highly parallelized, blazing fast directory tree analyzer"
GitHub Repo stars GitHub last release

pipr "A tool to interactively write shell pipelines."
GitHub Repo stars GitHub last release

procs A modern replacement for ps written in Rust
GitHub Repo stars GitHub last release

pueue A command-line task management tool for sequential and parallel execution of long-running tasks.
GitHub Repo stars GitHub last release

qsv CSVs sliced, diced & analyzed. (A fork of xsv)
GitHub Repo stars GitHub last release

rargs xargs + awk with pattern matching support.
GitHub Repo stars GitHub last release

rip A safe and ergonomic alternative to rm
GitHub Repo stars GitHub last release

ripgrep A faster replacement for GNU’s grep command. This tool is very good. See ripgrep-all to search PDFs, E-Books, Office documents, zip, tar.gz, etc.
GitHub Repo stars GitHub last release

ripsecrets Find secret keys in your code before committing them to git. I've contributed to this one!
GitHub Repo stars GitHub last release

rnr "A command-line tool to batch rename files and directories"
GitHub Repo stars GitHub last release

ruff An extremely fast Python linter, written in Rust.
GitHub Repo stars GitHub last release

ruplacer Find and replace text in source files
GitHub Repo stars GitHub last release

RustScan The modern port scanner
GitHub Repo stars GitHub last release

samply Command-line sampling profiler for macOS and Linux
GitHub Repo stars GitHub last release

sd Intuitive find & replace CLI (sed alternative).
GitHub Repo stars GitHub last release

skim A command-line fuzzy finder
GitHub Repo stars GitHub last release

spacer CLI tool to insert spacers when command output stops
GitHub Repo stars GitHub last release

sshx Fast, collaborative live terminal sharing over the web
GitHub Repo stars GitHub last release

tailspin A log file highlighter
GitHub Repo stars GitHub last release

tealdear A very fast implementation of tldr in Rust.
GitHub Repo stars GitHub last release

teehee "A modal terminal hex editor"
GitHub Repo stars GitHub last release

tin-summer Find build artifacts that are taking up disk space
GitHub Repo stars GitHub last release

tokei Count your (lines of) code, quickly
GitHub Repo stars GitHub last release

topgrade Upgrade all of your tools. (July 2023: Maintainers wanted.)
GitHub Repo stars GitHub last release

watchexec Execute commands in response to file modifications. (Note: See cargo watch if you want to watch a Rust project.)
GitHub Repo stars GitHub last release

xcp An extended cp
GitHub Repo stars GitHub last release

xh "Friendly and fast tool for sending HTTP requests"
GitHub Repo stars GitHub last release

xplr "A hackable, minimal, fast TUI file explorer"
GitHub Repo stars GitHub last release

xsv A fast CSV command line toolkit written in Rust.
GitHub Repo stars GitHub last release

yazi "Blazing fast terminal file manager written in Rust, based on async I/O."
GitHub Repo stars GitHub last release

zet Take the union, intersection, difference, etc of files — compare to uniq and comm.
GitHub Repo stars GitHub last release

zoxide A smarter cd command.
GitHub Repo stars GitHub last release

Calculators

eva "a calculator REPL, similar to bc(1)"
GitHub Repo stars GitHub last release

fend "Arbitrary-precision unit-aware calculator" (Documentation). I prefer this calculator.
GitHub Repo stars GitHub last release

Kalker "a calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals"
GitHub Repo stars GitHub last release

Terminal emulators / terminal-related

Alacritty: A cross-platform, OpenGL terminal emulator.
GitHub Repo stars GitHub last release

Rio: A hardware-accelerated GPU terminal emulator powered by WebGPU, focusing to run in desktops and browsers.
GitHub Repo stars GitHub last release

Starship: Customizable prompt for any shell.
GitHub Repo stars GitHub last release

Wezterm: A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
GitHub Repo stars GitHub last release

Zellij: A terminal workspace with batteries included.
GitHub Repo stars GitHub last release

Text editors written in Rust

amp: A complete text editor for your terminal.
GitHub Repo stars GitHub last release

helix: A post-modern modal text editor.
GitHub Repo stars GitHub last release

kibi: "A text editor in ≤1024 lines of code, written in Rust"
GitHub Repo stars GitHub last release

lapce: Lightning-fast and Powerful Code Editor written in Rust
GitHub Repo stars GitHub last release

pepper: A simple and opinionated modal code editor for your terminal
GitHub Repo stars GitHub last release

xi: A modern editor with a backend written in Rust.
GitHub Repo stars GitHub last release

zed: A "high-performance, multiplayer code editor from the creators of Atom and Tree-sitter."
GitHub Repo stars GitHub last release

zee: A modern text editor for the terminal written in Rust
GitHub Repo stars GitHub last release

See this "Battle of the [Rust] text editors" post from 2022 or this r/rust post.

Email clients

himalaya "Command-line interface for email management"
GitHub Repo stars GitHub last release

All core utils!?

Note that there is "a cross-platform reimplementation of the GNU coreutils in Rust". I link it here for those interested, but I argue that it doesn't quite fit into this project's goals.

Tools to help working with Rust lang itself

bacon: A background Rust code checker
GitHub Repo stars GitHub last release

cargo-audit: Audit Cargo.lock files for crates with security vulnerabilities reported to the RustSec Advisory Database. See also: cargo-deny and/or cargo-about.

cargo-binstall: "Binary installation for [R]ust projects"
GitHub Repo stars GitHub last release

cargo-cache Display information on the cargo cache (~/.cargo/ or $CARGO_HOME). Optional cache pruning.
GitHub Repo stars GitHub last release

cargo-crev: A cryptographically verifiable code review system for the cargo (Rust) package manager.
GitHub Repo stars GitHub last release

cargo-dist: "Shippable application packaging for Rust"
GitHub Repo stars GitHub last release

cargo-geiger: Detects usage of unsafe Rust in a Rust crate and its dependencies.
GitHub Repo stars GitHub last release

cargo-mutants: Inject bugs and see if your tests catch them!
GitHub Repo stars GitHub last release

cargo-semver-checks: Scan your Rust crate for semver violations.
GitHub Repo stars GitHub last release

cargo-show-asm: Shows asm, LLVM, MIR and similar low level stuff for your code
GitHub Repo stars GitHub last release

cargo watch: Watches over your Cargo project's source.
GitHub Repo stars GitHub last release

cargo-wipe: Cargo subcommand that recursively finds and optionally wipes all "target" or "node_modules" folders that are found in the current path. See also: kondo.
GitHub Repo stars GitHub last release

kani-verifier: A "bit-precise model checker for Rust."
GitHub Repo stars GitHub last release

Other lists of Rust command line utilities

Tips

Of the tools listed above, the ones I use regularly use are: bat, fd, fend, hyperfine, miniserve, ripgrep, just, cargo-audit and cargo-wipe. (I'm still torn between dust and erdtree...)

bat alias to act more like cat

alias cat=bat --paging=never

Aliases for ls I use in my ~/.bashrc

Prefer eza, then lsd, then regular old ls.

if hash eza 2>/dev/null; then
        alias ls='eza'
        alias l='eza -l --all --group-directories-first --git'
        alias ll='eza -l --all --all --group-directories-first --git'
        alias lt='eza -T --git-ignore --level=2 --group-directories-first'
        alias llt='eza -lT --git-ignore --level=2 --group-directories-first'
        alias lT='eza -T --git-ignore --level=4 --group-directories-first'
elif hash lsd 2>/dev/null; then
        alias ls='lsd'
        alias l='lsd -l --all --group-directories-first'
        alias ll='lsd -l --all --group-directories-first'
        alias lt='lsd --tree --depth=2 --group-directories-first'
        alias llt='lsd -l --tree --depth=2 --group-directories-first'
        alias lT='lsd --tree --depth=4 --group-directories-first'
else
        alias l='ls -lah'
        alias ll='ls -alF'
        alias la='ls -A'
fi

Shameless plug: Tools that I've written in Rust

Phraze Generate random passphrases
GitHub Repo stars GitHub last release

Tidy A Swiss army knife for word lists
GitHub Repo stars GitHub last release

Criteria for submitting a tool to this list

If you know of a Rust command line tool that you think would be a good fit for this list, open an issue or a PR. Note that I generally only consider projects that have 100 or more stars on GitHub, which I'm hoping means that the program will be a bit battle-tested and ready for real-world use. I also reserve the right to reject submissions even if they meet this criteria.

You're of course welcome to fork this project and maintain your own list! Check the included LICENSE file for more information.