├── .github
├── ISSUE_TEMPLATE.md
└── PULL_REQUEST_TEMPLATE.md
├── LICENSE
└── README.md
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Suggested tool(s):
2 | - [ ] is written in Rust
3 | - [ ] is open source, with a license like MIT, GPL, MPL, etc. (Warp is not currently open source)
4 | - [ ] has at least 100 stars on GitHub or is similarly well-used and well-tested
5 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Added tool(s):
2 | - [ ] is written in Rust
3 | - [ ] is open source, with a license like MIT, GPL, MPL, etc. (Warp is not currently open source)
4 | - [ ] has at least 100 stars on GitHub or is similarly well-used and well-tested
5 |
6 | I, as a contributor, have...
7 | - [ ] read this project's included license file(s).
8 | - [ ] placed the tool(s) in the correct section, in alphabetical order.
9 | - [ ] added the appropriate shields.io badges where relevant.
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # A curated list of command-line utilities written in Rust
2 |
3 | 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.
4 |
5 | ## Unix-to-Rust replacements (or near-replacements)
6 |
7 | |unix|rust |stars |last release |
8 | |----|---------------------------------------------------|-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
9 | |cat |[bat ](https://github.com/sharkdp/bat) | | |
10 | |cd |[zoxide ](https://github.com/ajeetdsouza/zoxide)|||
11 | |cp |[xcp ](https://github.com/tarka/xcp) | | |
12 | |df |[dysk ](https://github.com/Canop/dysk) | | |
13 | |diff|[delta ](https://github.com/dandavison/delta) | | |
14 | |diff|[difftastic](https://github.com/Wilfred/difftastic)|||
15 | |du |[dua ](https://github.com/Byron/dua-cli) | | |
16 | |du |[dust ](https://github.com/bootandy/dust) | | |
17 | |du |[dutree ](https://github.com/nachoparker/dutree)|||
18 | |du |[erdtree ](https://github.com/solidiquis/erdtree)|||
19 | |du |[pdu ](https://github.com/KSXGitHub/parallel-disk-usage)|||
20 | |find|[fd ](https://github.com/sharkdp/fd) | | |
21 | |grep|[ripgrep ](https://github.com/burntsushi/ripgrep)|||
22 | |ls |[eza ](https://github.com/eza-community/eza) | | |
23 | |ls |[lsd ](https://github.com/peltoche/lsd) | | |
24 | |ps |[procs ](https://github.com/dalance/procs) | | |
25 | |rm |[rip ](https://github.com/nivekuil/rip) | | |
26 | |sed |[sd ](https://github.com/chmln/sd) | | |
27 |
28 | ## Full list of Rust tools
29 |
30 | **[atuin](https://github.com/ellie/atuin)**
31 | "Magical shell history"
32 |
 
33 |
34 | **[bandwhich](https://github.com/imsnif/bandwhich)**
35 | Terminal bandwidth utilization tool
36 |
 
37 |
38 | **[bat](https://github.com/sharkdp/bat)**
39 | A replacement for `cat` that provides syntax highlighting and other features.
40 |
 
41 |
42 | **[bartib](https://github.com/nikolassv/bartib)**
43 | A simple timetracker for the command line.
44 |
 
45 |
46 | **[bottom](https://github.com/ClementTsang/bottom)**
47 | Yet another cross-platform graphical process/system monitor.
48 |
 
49 |
50 | **[broot](https://github.com/Canop/broot)**
51 | A new way to see and navigate directory trees
52 |
 
53 |
54 | **[choose](https://github.com/theryangeary/choose)**
55 | A human-friendly and fast alternative to `cut` and (sometimes) `awk`
56 |
 
57 |
58 | **[counts](https://github.com/nnethercote/counts)**
59 | "A tool for ad hoc profiling"
60 |
 
61 |
62 | **[csvlens](https://github.com/YS-L/csvlens)**
63 | A command line CSV file viewer
64 |
 
65 |
66 | **[delta](https://github.com/dandavison/delta)**
67 | A syntax-highlighting pager for git, `diff`, and grep output
68 |
 
69 |
70 | **[difftastic](https://github.com/Wilfred/difftastic/)**
71 | A syntax-aware diff
72 |
 
73 |
74 | **[diskonaut](https://github.com/imsnif/diskonaut)**
75 | Terminal disk space navigator
76 |
 
77 |
78 | **[dog](https://github.com/ogham/dog)**
79 | A command-line DNS client
80 |
 
81 |
82 | **[dua](https://github.com/Byron/dua-cli)**
83 | "View disk space usage and delete unwanted data, fast."
84 |
 
85 |
86 | **[dura](https://github.com/tkellogg/dura)**
87 | "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)."
88 |
 
89 |
90 | **[dust](https://github.com/bootandy/dust)**
91 | "a more intuitive version of `du` in Rust"
92 |
 
93 |
94 | **[dutree](https://github.com/nachoparker/dutree)**
95 | "a tool to analyze file system usage written in Rust"
96 |
 
97 |
98 | **[dysk](https://github.com/Canop/dysk)**
99 | "A linux utility to get information on filesystems, like `df` but better"
100 |
 
101 |
102 | **[erdtree](https://github.com/solidiquis/erdtree)**
103 | A multi-threaded file-tree visualizer and disk usage analyzer. (I usually use it as `et -l 1 -s size
`)
104 |
 
105 |
106 | **[eza](https://github.com/eza-community/eza)**
107 | A modern, maintained replacement for ls
108 |
 
109 |
110 | **[fclones](https://github.com/pkolaczk/fclones)**
111 | An "efficient duplicate file finder"
112 |
 
113 |
114 | **[fd](https://github.com/sharkdp/fd)**
115 | "A simple, fast and user-friendly alternative to `find`"
116 |
 
117 |
118 | **[felix](https://github.com/kyoheiu/felix)**
119 | tui file manager with vim-like key mapping
120 |
 
121 |
122 | **[ffsend](https://github.com/timvisee/ffsend)**
123 | "Easily and securely share files from the command line. A fully featured Firefox Send client."
124 |
 
125 |
126 | **[frum](https://github.com/TaKO8Ki/frum)**
127 | A modern Ruby version manager written in Rust
128 |
 
129 |
130 | **[fselect](https://github.com/jhspetersson/fselect)**
131 | "Find files with SQL-like queries"
132 |
 
133 |
134 | **[gifski](https://github.com/ImageOptim/gifski)**
135 | GIF encoder based on libimagequant (pngquant). Squeezes maximum possible quality from the awful GIF format.
136 |
 
137 |
138 | **[git-cliff](https://github.com/orhun/git-cliff)**
139 | "A highly customizable Changelog Generator that follows Conventional Commit specifications"
140 |
 
141 |
142 | **[grex](https://github.com/pemistahl/grex)**
143 | A command-line tool and library for generating regular expressions from user-provided test cases
144 |
 
145 |
146 | **[heh](https://github.com/ndd7xv/heh)**
147 | "A terminal UI to edit bytes by the nibble"
148 |
 
149 |
150 | **[himalaya](https://github.com/soywod/himalaya)**
151 | Command-line interface for email management
152 |
 
153 |
154 | **[htmlq](https://github.com/mgdm/htmlq)**
155 | Like jq, but for HTML. Uses CSS selectors to extract bits of content from HTML files.
156 |
 
157 |
158 | **[hyperfine](https://github.com/sharkdp/hyperfine)**
159 | Command-line benchmarking tool
160 |
 
161 |
162 | **[hyperlink](https://github.com/untitaker/hyperlink)**
163 | Very fast link checker for CI.
164 |
 
165 |
166 | **[inlyne](https://github.com/trimental/inlyne)**
167 | "GPU powered yet browsless tool to help you quickly view markdown files"
168 |
 
169 |
170 | **[intelli-shell](https://github.com/lasantosr/intelli-shell)**
171 | "Like IntelliSense, but for shells"
172 |
 
173 |
174 | **[jj](https://github.com/jj-vcs/jj)**
175 | "A Git-compatible VCS that is both simple and powerful"
176 |
 
177 |
178 | **[jless](https://github.com/PaulJuliusMartinez/jless)**
179 | "command-line JSON viewer designed for reading, exploring, and searching through JSON data."
180 |
 
181 |
182 | **[joshuto](https://github.com/kamiyaa/joshuto)**
183 | "ranger-like terminal file manager written in Rust"
184 |
 
185 |
186 | **[jql](https://github.com/yamafaktory/jql)**
187 | A JSON query language CLI tool. Note there's also [jaq](https://github.com/01mf02/jaq).
188 |
 
189 |
190 | **[juliaup](https://github.com/JuliaLang/juliaup)**
191 | A modern Julia version manager written in Rust
192 |
 
193 |
194 | **[just](https://github.com/casey/just)**
195 | Just a command runner (seems like an alternative to `make`)
196 |
 
197 |
198 | **[legdur](https://hg.sr.ht/~cyplo/legdur)**
199 | A "simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot."
200 |
201 | **[lemmeknow](https://github.com/swanandx/lemmeknow)**
202 | Identify mysterious text or analyze hard-coded strings from captured network packets, malwares, and more.
203 |
 
204 |
205 | **[lsd](https://github.com/Peltoche/lsd)**
206 | The next generation `ls` command
207 |
 
208 |
209 | **[macchina](https://github.com/macchina-cli/macchina)**
210 | Fast, minimal and customizable system information frontend.
211 |
 
212 |
213 | **[mcfly](https://github.com/cantino/mcfly)**
214 | Fly through your shell history.
215 |
 
216 |
217 | **[mdBook](https://github.com/rust-lang/mdBook)**
218 | Create books from markdown files. Like Gitbook but implemented in Rust
219 |
 
220 |
221 | **[mdcat](https://github.com/lunaryorn/mdcat)**
222 | Fancy `cat` for Markdown
223 |
 
224 |
225 | **[miniserve](https://github.com/svenstaro/miniserve)**
226 | A "CLI tool to serve files and dirs over HTTP". I use this as a replacement for `python -m http.server`.
227 |
 
228 |
229 | **[mise](https://github.com/jdx/mise)**
230 | Manage dev tools and env vars, plus a task runner
231 |
 
232 |
233 | **[monolith](https://github.com/y2z/monolith)**
234 | Save complete web pages as a single HTML file
235 |
 
236 |
237 | **[mprocs](https://github.com/pvolok/mprocs)**
238 | Run multiple commands in parallel
239 |
 
240 |
241 | **[onefetch](https://github.com/o2sh/onefetch)**
242 | Display project information and code statistics for a local Git repository
243 |
 
244 |
245 | **[ouch](https://github.com/ouch-org/ouch)**
246 | "Painless compression and decompression for your terminal"
247 |
 
248 |
249 | **[pastel](https://github.com/sharkdp/pastel)**
250 | A command-line tool to generate, analyze, convert and manipulate colors.
251 |
 
252 |
253 | **[pdu](https://github.com/KSXGitHub/parallel-disk-usage)**
254 | "Highly parallelized, blazing fast directory tree analyzer"
255 |
 
256 |
257 | **[pipr](https://github.com/Elkowar/pipr)**
258 | "A tool to interactively write shell pipelines."
259 |
 
260 |
261 | **[procs](https://github.com/dalance/procs)**
262 | A modern replacement for `ps` written in Rust
263 |
 
264 |
265 | **[pueue](https://github.com/Nukesor/pueue)**
266 | A command-line task management tool for sequential and parallel execution of long-running tasks.
267 |
 
268 |
269 | **[qsv](https://github.com/jqnatividad/qsv)**
270 | CSVs sliced, diced & analyzed. (A fork of `xsv`)
271 |
 
272 |
273 | **[rargs](https://github.com/lotabout/rargs)**
274 | xargs + awk with pattern matching support.
275 |
 
276 |
277 | **[rip](https://github.com/nivekuil/rip)**
278 | A safe and ergonomic alternative to `rm`
279 |
 
280 |
281 | **[ripgrep](https://github.com/BurntSushi/ripgrep)**
282 | A faster replacement for GNU’s `grep` command. This tool is very good. See [ripgrep-all](https://github.com/phiresky/ripgrep-all) to search PDFs, E-Books, Office documents, zip, tar.gz, etc.
283 |
 
284 |
285 | **[ripsecrets](https://github.com/sirwart/ripsecrets)**
286 | Find secret keys in your code before committing them to git. I've contributed to this one!
287 |
 
288 |
289 | **[rnr](https://github.com/ismaelgv/rnr)**
290 | "A command-line tool to batch rename files and directories"
291 |
 
292 |
293 | **[ruff](https://github.com/charliermarsh/ruff)**
294 | An extremely fast Python linter, written in Rust.
295 |
 
296 |
297 | **[ruplacer](https://github.com/your-tools/ruplacer)**
298 | Find and replace text in source files
299 |
 
300 |
301 | **[RustScan](https://github.com/RustScan/RustScan)**
302 | The modern port scanner
303 |
 
304 |
305 | **[samply](https://github.com/mstange/samply)**
306 | Command-line sampling profiler for macOS and Linux
307 |
 
308 |
309 | **[sd](https://github.com/chmln/sd)**
310 | Intuitive find & replace CLI (`sed` alternative).
311 |
 
312 |
313 | **[skim](https://github.com/lotabout/skim)**
314 | A command-line fuzzy finder
315 |
 
316 |
317 | **[spacer](https://github.com/samwho/spacer)**
318 | CLI tool to insert spacers when command output stops
319 |
 
320 |
321 | **[sshx](https://github.com/ekzhang/sshx)**
322 | Fast, collaborative live terminal sharing over the web
323 |
 
324 |
325 | **[tailspin](https://github.com/bensadeh/tailspin)**
326 | A log file highlighter
327 |
 
328 |
329 | **[tealdear](https://github.com/dbrgn/tealdeer)**
330 | A very fast implementation of `tldr` in Rust.
331 |
 
332 |
333 | **[teehee](https://github.com/Gskartwii/teehee)**
334 | "A modal terminal hex editor"
335 |
 
336 |
337 | **[tin-summer](https://github.com/vmchale/tin-summer)**
338 | Find build artifacts that are taking up disk space
339 |
 
340 |
341 | **[tiny](https://github.com/osa1/tiny)**
342 | A terminal IRC client
343 |
 
344 |
345 | **[tokei](https://github.com/XAMPPRocky/tokei)**
346 | Count your (lines of) code, quickly
347 |
 
348 |
349 | **[topgrade](https://github.com/topgrade-rs/topgrade)**
350 | Upgrade all of your tools.
351 |
 
352 |
353 | **[uv](https://github.com/astral-sh/uv)**
354 | An extremely fast Python package and project manager, written in Rust.
355 |
 
356 |
357 | **[vocage](https://github.com/proycon/vocage)**
358 | A minimalistic vocabulary trainer (flashcards) for the terminal
359 |
 
360 |
361 | **[watchexec](https://github.com/watchexec/watchexec)**
362 | Execute commands in response to file modifications. (Note: See [cargo watch](https://github.com/watchexec/cargo-watch) if you want to watch a Rust project.)
363 |
 
364 |
365 | **[xcp](https://github.com/tarka/xcp)**
366 | An extended `cp`
367 |
 
368 |
369 | **[xh](https://github.com/ducaale/xh)**
370 | "Friendly and fast tool for sending HTTP requests"
371 |
 
372 |
373 | **[xplr](https://github.com/sayanarijit/xplr)**
374 | "A hackable, minimal, fast TUI file explorer"
375 |
 
376 |
377 | **[xsv](https://github.com/BurntSushi/xsv)**
378 | A fast CSV command line toolkit written in Rust.
379 |
 
380 |
381 | **[yazi](https://github.com/sxyazi/yazi)**
382 | "Blazing fast terminal file manager written in Rust, based on async I/O."
383 |
 
384 |
385 | **[zet](https://github.com/yarrow/zet)**
386 | Take the union, intersection, difference, etc of files — compare to `uniq` and `comm`.
387 |
 
388 |
389 | **[zoxide](https://github.com/ajeetdsouza/zoxide)**
390 | A smarter `cd` command.
391 |
 
392 |
393 | ## Calculators
394 | **[eva](https://github.com/nerdypepper/eva)**
395 | "a calculator REPL, similar to bc(1)"
396 |
 
397 |
398 | **[fend](https://github.com/printfn/fend)**
399 | "Arbitrary-precision unit-aware calculator" ([Documentation](https://printfn.github.io/fend/documentation)). I prefer this calculator.
400 |
 
401 |
402 | **[Kalker](https://github.com/PaddiM8/kalker)**
403 | "a calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals"
404 |
 
405 |
406 | **[numbat](https://github.com/sharkdp/numbat)**
407 | "A statically typed programming language for scientific computations with first class support for physical dimensions and units"
408 |
 
409 |
410 | ## Terminal emulators / terminal-related
411 |
412 | **[Alacritty](https://github.com/alacritty/alacritty)**:
413 | A cross-platform, OpenGL terminal emulator.
414 |
 
415 |
416 | **[nushell](https://github.com/nushell/nushell)**:
417 | A new type of shell.
418 |
 
419 |
420 | **[Rio](https://github.com/raphamorim/rio)**:
421 | A hardware-accelerated GPU terminal emulator powered by WebGPU, focusing to run in desktops and browsers.
422 |
 
423 |
424 | **[Starship](https://starship.rs/)**:
425 | Customizable prompt for any shell.
426 |
 
427 |
428 | **[Wezterm](https://github.com/wez/wezterm)**:
429 | A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
430 |
 
431 |
432 | **[Zellij](https://github.com/zellij-org/zellij)**:
433 | A terminal workspace with batteries included.
434 |
 
435 |
436 | ## Text editors written in Rust
437 |
438 | **[amp](https://github.com/jmacdonald/amp)**:
439 | A complete text editor for your terminal.
440 |
 
441 |
442 | **[helix](https://github.com/helix-editor/helix)**:
443 | A post-modern modal text editor.
444 |
 
445 |
446 | **[kibi](https://github.com/ilai-deutel/kibi)**:
447 | "A text editor in ≤1024 lines of code, written in Rust"
448 |
 
449 |
450 | **[lapce](https://github.com/lapce/lapce)**:
451 | Lightning-fast and Powerful Code Editor written in Rust
452 |
 
453 |
454 | **[pepper](https://github.com/vamolessa/pepper)**:
455 | A simple and opinionated modal code editor for your terminal
456 |
 
457 |
458 | **[xi](https://github.com/xi-editor/xi-editor)**:
459 | A modern editor with a backend written in Rust.
460 |
 
461 |
462 | **[zed](https://github.com/zed-industries/zed)**:
463 | A "high-performance, multiplayer code editor from the creators of Atom and Tree-sitter."
464 |
 
465 |
466 | **[zee](https://github.com/zee-editor/zee)**:
467 | A modern text editor for the terminal written in Rust
468 |
 
469 |
470 | See [this "Battle of the [Rust] text editors" post from 2022](https://matduggan.com/battle-of-the-text-editors/) or [this r/rust post](https://www.reddit.com/r/rust/comments/121l4ek/editors_written_in_rust/).
471 |
472 | ## Email clients
473 | [himalaya](https://github.com/soywod/himalaya)
474 | "Command-line interface for email management"
475 |
 
476 |
477 | ## All core utils!?
478 | Note that there is ["a cross-platform reimplementation of the GNU coreutils in Rust"](https://github.com/uutils/coreutils). I link it here for those interested, but I argue that it doesn't _quite_ fit into this project's goals.
479 |
480 | ## Tools to help working with Rust lang itself
481 |
482 | **[bacon](https://github.com/Canop/bacon)**:
483 | A background Rust code checker
484 |
 
485 |
486 | **[cargo-audit](https://github.com/RustSec/rustsec/tree/main/cargo-audit)**:
487 | Audit Cargo.lock files for crates with security vulnerabilities reported to the RustSec Advisory Database. See also: [cargo-deny](https://github.com/EmbarkStudios/cargo-deny) and/or [cargo-about](https://github.com/EmbarkStudios/cargo-about).
488 |
489 | **[cargo-binstall](https://github.com/cargo-bins/cargo-binstall)**:
490 | "Binary installation for [R]ust projects"
491 |
 
492 |
493 | **[cargo-cache](https://github.com/matthiaskrgr/cargo-cache)**
494 | Display information on the cargo cache (`~/.cargo/` or `$CARGO_HOME`). Optional cache pruning.
495 |
 
496 |
497 | **[cargo-crev](https://github.com/crev-dev/cargo-crev)**:
498 | A cryptographically verifiable code review system for the cargo (Rust) package manager.
499 |
 
500 |
501 | **[cargo-dist](https://github.com/axodotdev/cargo-dist)**:
502 | "Shippable application packaging for Rust"
503 |
 
504 |
505 | **[cargo-geiger](https://github.com/rust-secure-code/cargo-geiger)**:
506 | Detects usage of unsafe Rust in a Rust crate and its dependencies.
507 |
 
508 |
509 | **[cargo-mutants](https://github.com/sourcefrog/cargo-mutants)**:
510 | Inject bugs and see if your tests catch them!
511 |
 
512 |
513 | **[cargo-semver-checks](https://github.com/obi1kenobi/cargo-semver-checks)**:
514 | Scan your Rust crate for semver violations.
515 |
 
516 |
517 | **[cargo-show-asm](https://github.com/pacak/cargo-show-asm)**:
518 | Shows asm, LLVM, MIR and similar low level stuff for your code
519 |
 
520 |
521 | **[cargo update](https://github.com/nabijaczleweli/cargo-update)**:
522 | A cargo subcommand for checking and applying updates to installed executables
523 |
 
524 |
525 | **[cargo watch](https://github.com/watchexec/cargo-watch)**:
526 | Watches over your Cargo project's source.
527 |
 
528 |
529 | **[cargo-wipe](https://github.com/mihai-dinculescu/cargo-wipe)**:
530 | Cargo subcommand that recursively finds and optionally wipes all "target" or "node_modules" folders that are found in the current path. See also: [kondo](https://github.com/tbillington/kondo).
531 |
 
532 |
533 | **[kani-verifier](https://github.com/model-checking/kani)**:
534 | A "bit-precise model checker for Rust."
535 |
 
536 |
537 | ## Other lists of Rust command line utilities
538 |
539 | - [lib.rs's list](https://lib.rs/command-line-utilities)
540 | - ["Awesome Rust"](https://github.com/rust-unofficial/awesome-rust)
541 | - [Awesome Alternatives in Rust](https://github.com/TaKO8Ki/awesome-alternatives-in-rust)
542 | - [Embedded Rust](https://github.com/rust-embedded/awesome-embedded-rust): "Curated list of resources for Embedded and Low-level development in the Rust programming language"
543 |
544 | ## Tips
545 |
546 | 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...)
547 |
548 | ### `bat` alias to act more like `cat`
549 |
550 | ```bash
551 | alias cat=bat --paging=never
552 | ```
553 |
554 | ### Aliases for `ls` I use in my `~/.bashrc`
555 |
556 | Prefer eza, then lsd, then regular old `ls`.
557 |
558 | ```bash
559 | if hash eza 2>/dev/null; then
560 | alias ls='eza'
561 | alias l='eza -l --all --group-directories-first --git'
562 | alias ll='eza -l --all --all --group-directories-first --git'
563 | alias lt='eza -T --git-ignore --level=2 --group-directories-first'
564 | alias llt='eza -lT --git-ignore --level=2 --group-directories-first'
565 | alias lT='eza -T --git-ignore --level=4 --group-directories-first'
566 | elif hash lsd 2>/dev/null; then
567 | alias ls='lsd'
568 | alias l='lsd -l --all --group-directories-first'
569 | alias ll='lsd -l --all --group-directories-first'
570 | alias lt='lsd --tree --depth=2 --group-directories-first'
571 | alias llt='lsd -l --tree --depth=2 --group-directories-first'
572 | alias lT='lsd --tree --depth=4 --group-directories-first'
573 | else
574 | alias l='ls -lah'
575 | alias ll='ls -alF'
576 | alias la='ls -A'
577 | fi
578 | ```
579 |
580 | ## Shameless plug: Tools that I've written in Rust
581 |
582 | **[Phraze](https://github.com/sts10/phraze)**:
583 | Generate random passphrases
584 |
 
585 |
586 | **[Tidy](https://github.com/sts10/tidy)**:
587 | A Swiss army knife for word lists
588 |
 
589 |
590 | ## Criteria for submitting a tool to this list
591 |
592 | 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.
593 |
594 | Note that I generally only consider projects that are (a) open source and (b) 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.
595 |
596 | You're of course welcome to fork this project and maintain your own list! Check the included LICENSE file for more information.
597 |
598 |
599 |
--------------------------------------------------------------------------------