Skip to content

Instantly share code, notes, and snippets.

@sts10
Last active November 14, 2024 19:54
Show Gist options
  • Save sts10/daadbc2f403bdffad1b6d33aff016c0a to your computer and use it in GitHub Desktop.
Save sts10/daadbc2f403bdffad1b6d33aff016c0a to your computer and use it in GitHub Desktop.
A curated list of command-line utilities written in Rust

A curated list of command-line utilities written in Rust

Note: I have moved this list to a proper repository. I'll leave this gist up, but it won't be updated. To submit an idea, open a PR on the repo.

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 here are copied directly from their code repos. Some may have been abandoned. Investigate before installing/using.

The ones I use regularly include: bat, dust, fd, fend, hyperfine, miniserve, ripgrep, just, cargo-audit and cargo-wipe.

  • atuin: "Magical shell history"
  • bandwhich: Terminal bandwidth utilization tool
  • bat: A replacement for cat that provides syntax highlighting and other features.
  • bottom: Yet another cross-platform graphical process/system monitor.
  • broot: A new way to see and navigate directory trees
  • counts: "A tool for ad hoc profiling"
  • choose: A human-friendly and fast alternative to cut and (sometimes) awk
  • delta: A syntax-highlighting pager for git, diff, and grep output
  • difftastic: A syntax-aware diff
  • dog: A command-line DNS client
  • dua: "View disk space usage and delete unwanted data, fast."
  • dust: "a more intuitive version of du in Rust"
  • eza: "A modern version of ls".
  • fclones: an "efficient duplicate file finder"
  • fd: "A simple, fast and user-friendly alternative to find"
  • felix: tui file manager with vim-like key mapping
  • ffsend: "Easily and securely share files from the command line. A fully featured Firefox Send client."
  • frum: A modern Ruby version manager written in Rust
  • fselect: "Find files with SQL-like queries"
  • git-cliff: "A highly customizable Changelog Generator that follows Conventional Commit specifications"
  • gptman: "A GPT manager that allows you to copy partitions from one disk to another and more"
  • grex: A command-line tool and library for generating regular expressions from user-provided test cases
  • Himalaya: Command-line interface for email management
  • htmlq: Like jq, but for HTML. Uses CSS selectors to extract bits of content from HTML files.
  • hyperfine: Command-line benchmarking tool
  • inlyne: "GPU powered yet browsless tool to help you quickly view markdown files"
  • jless: "command-line JSON viewer designed for reading, exploring, and searching through JSON data."
  • jql: A JSON query language CLI tool
  • just: Just a command runner (seems like an alternative to make)
  • 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.
  • lfs: A Linux utility to get information on filesystems; like df but better
  • lsd: The next generation ls command (though personally I prefer eza)
  • macchina: Fast, minimal and customizable system information frontend.
  • mdBook: Create books from markdown files. Like Gitbook but implemented in Rust
  • mdcat: Fancy cat for Markdown
  • miniserve is "a CLI tool to serve files and dirs over HTTP". I use this as a replacement for python -m SimpleHTTPServer, or whatever the latest version of that command is.
  • monolith: Save complete web pages as a single HTML file
  • ouch: "Painless compression and decompression for your terminal"
  • pastel: A command-line tool to generate, analyze, convert and manipulate colors.
  • pipr: "A tool to interactively write shell pipelines."
  • procs: A modern replacement for ps written in Rust
  • qsv: CSVs sliced, diced & analyzed. (A fork of xsv)
  • rargs: xargs + awk with pattern matching support.
  • rip: A safe and ergonomic alternative to rm
  • 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.
  • ripsecrets: Find secret keys in your code before commiting them to git. I've contributed to this one!
  • rnr: "A command-line tool to batch rename files and directories"
  • sd: Intuitive find & replace CLI (sed alternative).
  • skim: A command-line fuzzy finder.
  • tealdear: A very fast implementation of tldr in Rust.
  • teehee: "A modal terminal hex editor"
  • tin-summer: Find build artifacts that are taking up disk space
  • tokei: Count your (lines of) code, quickly
  • topgrade: Upgrade all of your tools
  • watchexec: Execute commands in response to file modifications. (Note: See cargo watch if you want to watch a Rust project.)
  • xcp: An extended cp
  • xh: "Friendly and fast tool for sending HTTP requests"
  • xsv: A fast CSV command line toolkit written in Rust. (Last updated in 2018)
  • zoxide: A smarter cd command.

Calculators

  • eva: "a calculator REPL, similar to bc(1)" (be sure to check out fend as well)
  • fend: "Arbitrary-precision unit-aware calculator" (Documentation)
  • Kalker: "a calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals"
  • printfn: "Arbitrary-precision unit-aware calculator"

Tools to help working with Rust lang itself

  • cargo-audit: Audit Cargo.lock files for crates with security vulnerabilities reported to the RustSec Advisory Database. See also: cargo-deny.
  • cargo-geiger: Detects usage of unsafe Rust in a Rust crate and its dependencies.
  • 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.
  • cargo-crev: A cryptographically verifiable code review system for the cargo (Rust) package manager.
  • bacon: A background Rust code checker
  • cargo watch: Watches over your Cargo project's source.
  • cargo-binstall: "Binary installation for [R]ust projects"
  • kani-verifier: A "bit-precise model checker for Rust."

Terminal emulators / terminal-related

  • Alacritty: A cross-platform, OpenGL terminal emulator.
  • Wezterm: A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
  • Starship: Customizable prompt for any shell.
  • Zellij: A terminal workspace with batteries included.

Text editors written in Rust

See this "Battle of the [Rust] text editors" post from 2022.

Email clients

  • himalaya: "Command-line interface for email management"

Other lists of Rust command line utilities

Shameless plug: Tools that I've written in Rust

  • Tidy: A command-line tool for combining and cleaning large word list files.

Know a good one that I don't have listed here?

Let me know in the comments, a PR, on Mastodon or Twitter.

Licensing

This document is licensed under CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.

@jurgen-kluft
Copy link

@fancycade
Copy link

Not sure where it might fit but it certainly qualifies as a Rust command line tool:

https://github.com/soywod/himalaya

@jurgen-kluft
Copy link

@jhspetersson
Copy link

fselect Find files with SQL-like queries
https://github.com/jhspetersson/fselect

@sts10
Copy link
Author

sts10 commented Nov 9, 2022

Thank you for all these suggestions! I'm reading them!

@glatavento
Copy link

This list is awesome. Here are several other utilities I'm using:

@mbainter
Copy link

mbainter commented Jan 25, 2023

Alongside of rnr I'd recommend rargs -- a more ergonomic and powerful version of xargs.

@MollyTheMudWitch
Copy link

Here's a tip: don't use exa, its abandoned.

@mbainter
Copy link

mbainter commented Mar 6, 2023

I think that could probably have been phrased better. It does still have an active community that cares, but the current release is stale, so a note about that status would not be out of line, ideally linking to the current ongoing discussion regarding how to address the problem.

@sts10
Copy link
Author

sts10 commented Mar 6, 2023

Re: exa, thanks for flagging. I added a note.

Also note that I'm trying to shift this project from this gist to this repo, so that helpful readers like y'all can create Issues and PRs.

@lasantosr
Copy link

Hey, Ithink this is an awesome list!

I haven't found an utility to bookmark and store commands, so I've developed my own
https://github.com/lasantosr/intelli-shell

Can you include it here?
I'll try to open a PR on the repo when I'm back at some laptop

@dj8yfo
Copy link

dj8yfo commented Jun 8, 2023

A note-taking, PKM tool for markdown - mds. https://github.com/dj8yfo/meudeus

@sts10
Copy link
Author

sts10 commented Jun 8, 2023

Yeah, I'm considering meudeus here. I made a semi-arbitrary rule of not adding tools with fewer than 100 GitHub stars, so I'm kind of chilling on meudeus for now.

@DrunkenToast
Copy link

onefetch :)

@bdmorin
Copy link

bdmorin commented Jul 12, 2023

CleanShot 2023-07-12 at 12 06 09
topgrade-rs needs maintainers. Hate to see this amazing utility wither.
my Rust journey hasn't been up to snuff enough to make a difference.

@rebcabin
Copy link

heh (hex editor) seems very good, more robust on huge files than Emacs's hex-editor mode: https://github.com/ndd7xv/heh

@sts10
Copy link
Author

sts10 commented Aug 16, 2023

heh (hex editor) seems very good, more robust on huge files than Emacs's hex-editor mode: https://github.com/ndd7xv/heh

Thanks for the suggestion. I'm trying to shift my updating work from this Gist to this GitHub repo. I've added heh there.

@rebcabin
Copy link

rebcabin commented Aug 16, 2023 via email

@frontsideair
Copy link

spacer would be a nice addition.

@espdev
Copy link

espdev commented Dec 26, 2023

Thanks. It would be nice to add mcfly

@epogrebnyak
Copy link

Are there any new and modern tools to manipulate PATH?

@rain2307
Copy link

Are there any new and modern tools to manipulate PATH?

I'm intrested

@ybda
Copy link

ybda commented Mar 17, 2024

Just as a suggestion - shmarks (bookmarks for your directories)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment