├── .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 | **[jless](https://github.com/PaulJuliusMartinez/jless)**
175 | "command-line JSON viewer designed for reading, exploring, and searching through JSON data."
176 |
 
177 |
178 | **[joshuto](https://github.com/kamiyaa/joshuto)**
179 | "ranger-like terminal file manager written in Rust"
180 |
 
181 |
182 | **[jql](https://github.com/yamafaktory/jql)**
183 | A JSON query language CLI tool. Note there's also [jaq](https://github.com/01mf02/jaq).
184 |
 
185 |
186 | **[juliaup](https://github.com/JuliaLang/juliaup)**
187 | A modern Julia version manager written in Rust
188 |
 
189 |
190 | **[just](https://github.com/casey/just)**
191 | Just a command runner (seems like an alternative to `make`)
192 |
 
193 |
194 | **[legdur](https://hg.sr.ht/~cyplo/legdur)**
195 | A "simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot."
196 |
197 | **[lemmeknow](https://github.com/swanandx/lemmeknow)**
198 | Identify mysterious text or analyze hard-coded strings from captured network packets, malwares, and more.
199 |
 
200 |
201 | **[lsd](https://github.com/Peltoche/lsd)**
202 | The next generation `ls` command
203 |
 
204 |
205 | **[macchina](https://github.com/macchina-cli/macchina)**
206 | Fast, minimal and customizable system information frontend.
207 |
 
208 |
209 | **[mcfly](https://github.com/cantino/mcfly)**
210 | Fly through your shell history.
211 |
 
212 |
213 | **[mdBook](https://github.com/rust-lang/mdBook)**
214 | Create books from markdown files. Like Gitbook but implemented in Rust
215 |
 
216 |
217 | **[mdcat](https://github.com/lunaryorn/mdcat)**
218 | Fancy `cat` for Markdown
219 |
 
220 |
221 | **[miniserve](https://github.com/svenstaro/miniserve)**
222 | A "CLI tool to serve files and dirs over HTTP". I use this as a replacement for `python -m http.server`.
223 |
 
224 |
225 | **[mise](https://github.com/jdx/mise)**
226 | Manage dev tools and env vars, plus a task runner
227 |
 
228 |
229 | **[monolith](https://github.com/y2z/monolith)**
230 | Save complete web pages as a single HTML file
231 |
 
232 |
233 | **[mprocs](https://github.com/pvolok/mprocs)**
234 | Run multiple commands in parallel
235 |
 
236 |
237 | **[onefetch](https://github.com/o2sh/onefetch)**
238 | Display project information and code statistics for a local Git repository
239 |
 
240 |
241 | **[ouch](https://github.com/ouch-org/ouch)**
242 | "Painless compression and decompression for your terminal"
243 |
 
244 |
245 | **[pastel](https://github.com/sharkdp/pastel)**
246 | A command-line tool to generate, analyze, convert and manipulate colors.
247 |
 
248 |
249 | **[pdu](https://github.com/KSXGitHub/parallel-disk-usage)**
250 | "Highly parallelized, blazing fast directory tree analyzer"
251 |
 
252 |
253 | **[pipr](https://github.com/Elkowar/pipr)**
254 | "A tool to interactively write shell pipelines."
255 |
 
256 |
257 | **[procs](https://github.com/dalance/procs)**
258 | A modern replacement for `ps` written in Rust
259 |
 
260 |
261 | **[pueue](https://github.com/Nukesor/pueue)**
262 | A command-line task management tool for sequential and parallel execution of long-running tasks.
263 |
 
264 |
265 | **[qsv](https://github.com/jqnatividad/qsv)**
266 | CSVs sliced, diced & analyzed. (A fork of `xsv`)
267 |
 
268 |
269 | **[rargs](https://github.com/lotabout/rargs)**
270 | xargs + awk with pattern matching support.
271 |
 
272 |
273 | **[rip](https://github.com/nivekuil/rip)**
274 | A safe and ergonomic alternative to `rm`
275 |
 
276 |
277 | **[ripgrep](https://github.com/BurntSushi/ripgrep)**
278 | 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.
279 |
 
280 |
281 | **[ripsecrets](https://github.com/sirwart/ripsecrets)**
282 | Find secret keys in your code before committing them to git. I've contributed to this one!
283 |
 
284 |
285 | **[rnr](https://github.com/ismaelgv/rnr)**
286 | "A command-line tool to batch rename files and directories"
287 |
 
288 |
289 | **[ruff](https://github.com/charliermarsh/ruff)**
290 | An extremely fast Python linter, written in Rust.
291 |
 
292 |
293 | **[ruplacer](https://github.com/your-tools/ruplacer)**
294 | Find and replace text in source files
295 |
 
296 |
297 | **[RustScan](https://github.com/RustScan/RustScan)**
298 | The modern port scanner
299 |
 
300 |
301 | **[samply](https://github.com/mstange/samply)**
302 | Command-line sampling profiler for macOS and Linux
303 |
 
304 |
305 | **[sd](https://github.com/chmln/sd)**
306 | Intuitive find & replace CLI (`sed` alternative).
307 |
 
308 |
309 | **[skim](https://github.com/lotabout/skim)**
310 | A command-line fuzzy finder
311 |
 
312 |
313 | **[spacer](https://github.com/samwho/spacer)**
314 | CLI tool to insert spacers when command output stops
315 |
 
316 |
317 | **[sshx](https://github.com/ekzhang/sshx)**
318 | Fast, collaborative live terminal sharing over the web
319 |
 
320 |
321 | **[tailspin](https://github.com/bensadeh/tailspin)**
322 | A log file highlighter
323 |
 
324 |
325 | **[tealdear](https://github.com/dbrgn/tealdeer)**
326 | A very fast implementation of `tldr` in Rust.
327 |
 
328 |
329 | **[teehee](https://github.com/Gskartwii/teehee)**
330 | "A modal terminal hex editor"
331 |
 
332 |
333 | **[tin-summer](https://github.com/vmchale/tin-summer)**
334 | Find build artifacts that are taking up disk space
335 |
 
336 |
337 | **[tiny](https://github.com/osa1/tiny)**
338 | A terminal IRC client
339 |
 
340 |
341 | **[tokei](https://github.com/XAMPPRocky/tokei)**
342 | Count your (lines of) code, quickly
343 |
 
344 |
345 | **[topgrade](https://github.com/topgrade-rs/topgrade)**
346 | Upgrade all of your tools.
347 |
 
348 |
349 | **[uv](https://github.com/astral-sh/uv)**
350 | An extremely fast Python package and project manager, written in Rust.
351 |
 
352 |
353 | **[vocage](https://github.com/proycon/vocage)**
354 | A minimalistic vocabulary trainer (flashcards) for the terminal
355 |
 
356 |
357 | **[watchexec](https://github.com/watchexec/watchexec)**
358 | 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.)
359 |
 
360 |
361 | **[xcp](https://github.com/tarka/xcp)**
362 | An extended `cp`
363 |
 
364 |
365 | **[xh](https://github.com/ducaale/xh)**
366 | "Friendly and fast tool for sending HTTP requests"
367 |
 
368 |
369 | **[xplr](https://github.com/sayanarijit/xplr)**
370 | "A hackable, minimal, fast TUI file explorer"
371 |
 
372 |
373 | **[xsv](https://github.com/BurntSushi/xsv)**
374 | A fast CSV command line toolkit written in Rust.
375 |
 
376 |
377 | **[yazi](https://github.com/sxyazi/yazi)**
378 | "Blazing fast terminal file manager written in Rust, based on async I/O."
379 |
 
380 |
381 | **[zet](https://github.com/yarrow/zet)**
382 | Take the union, intersection, difference, etc of files — compare to `uniq` and `comm`.
383 |
 
384 |
385 | **[zoxide](https://github.com/ajeetdsouza/zoxide)**
386 | A smarter `cd` command.
387 |
 
388 |
389 | ## Calculators
390 | **[eva](https://github.com/nerdypepper/eva)**
391 | "a calculator REPL, similar to bc(1)"
392 |
 
393 |
394 | **[fend](https://github.com/printfn/fend)**
395 | "Arbitrary-precision unit-aware calculator" ([Documentation](https://printfn.github.io/fend/documentation)). I prefer this calculator.
396 |
 
397 |
398 | **[Kalker](https://github.com/PaddiM8/kalker)**
399 | "a calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals"
400 |
 
401 |
402 | ## Terminal emulators / terminal-related
403 |
404 | **[Alacritty](https://github.com/alacritty/alacritty)**:
405 | A cross-platform, OpenGL terminal emulator.
406 |
 
407 |
408 | **[nushell](https://github.com/nushell/nushell)**:
409 | A new type of shell.
410 |
 
411 |
412 | **[Rio](https://github.com/raphamorim/rio)**:
413 | A hardware-accelerated GPU terminal emulator powered by WebGPU, focusing to run in desktops and browsers.
414 |
 
415 |
416 | **[Starship](https://starship.rs/)**:
417 | Customizable prompt for any shell.
418 |
 
419 |
420 | **[Wezterm](https://github.com/wez/wezterm)**:
421 | A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
422 |
 
423 |
424 | **[Zellij](https://github.com/zellij-org/zellij)**:
425 | A terminal workspace with batteries included.
426 |
 
427 |
428 | ## Text editors written in Rust
429 |
430 | **[amp](https://github.com/jmacdonald/amp)**:
431 | A complete text editor for your terminal.
432 |
 
433 |
434 | **[helix](https://github.com/helix-editor/helix)**:
435 | A post-modern modal text editor.
436 |
 
437 |
438 | **[kibi](https://github.com/ilai-deutel/kibi)**:
439 | "A text editor in ≤1024 lines of code, written in Rust"
440 |
 
441 |
442 | **[lapce](https://github.com/lapce/lapce)**:
443 | Lightning-fast and Powerful Code Editor written in Rust
444 |
 
445 |
446 | **[pepper](https://github.com/vamolessa/pepper)**:
447 | A simple and opinionated modal code editor for your terminal
448 |
 
449 |
450 | **[xi](https://github.com/xi-editor/xi-editor)**:
451 | A modern editor with a backend written in Rust.
452 |
 
453 |
454 | **[zed](https://github.com/zed-industries/zed)**:
455 | A "high-performance, multiplayer code editor from the creators of Atom and Tree-sitter."
456 |
 
457 |
458 | **[zee](https://github.com/zee-editor/zee)**:
459 | A modern text editor for the terminal written in Rust
460 |
 
461 |
462 | 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/).
463 |
464 | ## Email clients
465 | [himalaya](https://github.com/soywod/himalaya)
466 | "Command-line interface for email management"
467 |
 
468 |
469 | ## All core utils!?
470 | 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.
471 |
472 | ## Tools to help working with Rust lang itself
473 |
474 | **[bacon](https://github.com/Canop/bacon)**:
475 | A background Rust code checker
476 |
 
477 |
478 | **[cargo-audit](https://github.com/RustSec/rustsec/tree/main/cargo-audit)**:
479 | 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).
480 |
481 | **[cargo-binstall](https://github.com/cargo-bins/cargo-binstall)**:
482 | "Binary installation for [R]ust projects"
483 |
 
484 |
485 | **[cargo-cache](https://github.com/matthiaskrgr/cargo-cache)**
486 | Display information on the cargo cache (`~/.cargo/` or `$CARGO_HOME`). Optional cache pruning.
487 |
 
488 |
489 | **[cargo-crev](https://github.com/crev-dev/cargo-crev)**:
490 | A cryptographically verifiable code review system for the cargo (Rust) package manager.
491 |
 
492 |
493 | **[cargo-dist](https://github.com/axodotdev/cargo-dist)**:
494 | "Shippable application packaging for Rust"
495 |
 
496 |
497 | **[cargo-geiger](https://github.com/rust-secure-code/cargo-geiger)**:
498 | Detects usage of unsafe Rust in a Rust crate and its dependencies.
499 |
 
500 |
501 | **[cargo-mutants](https://github.com/sourcefrog/cargo-mutants)**:
502 | Inject bugs and see if your tests catch them!
503 |
 
504 |
505 | **[cargo-semver-checks](https://github.com/obi1kenobi/cargo-semver-checks)**:
506 | Scan your Rust crate for semver violations.
507 |
 
508 |
509 | **[cargo-show-asm](https://github.com/pacak/cargo-show-asm)**:
510 | Shows asm, LLVM, MIR and similar low level stuff for your code
511 |
 
512 |
513 | **[cargo update](https://github.com/nabijaczleweli/cargo-update)**:
514 | A cargo subcommand for checking and applying updates to installed executables
515 |
 
516 |
517 | **[cargo watch](https://github.com/watchexec/cargo-watch)**:
518 | Watches over your Cargo project's source.
519 |
 
520 |
521 | **[cargo-wipe](https://github.com/mihai-dinculescu/cargo-wipe)**:
522 | 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).
523 |
 
524 |
525 | **[kani-verifier](https://github.com/model-checking/kani)**:
526 | A "bit-precise model checker for Rust."
527 |
 
528 |
529 | ## Other lists of Rust command line utilities
530 |
531 | - [lib.rs's list](https://lib.rs/command-line-utilities)
532 | - ["Awesome Rust"](https://github.com/rust-unofficial/awesome-rust)
533 | - [Awesome Alternatives in Rust](https://github.com/TaKO8Ki/awesome-alternatives-in-rust)
534 | - [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"
535 |
536 | ## Tips
537 |
538 | 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...)
539 |
540 | ### `bat` alias to act more like `cat`
541 |
542 | ```bash
543 | alias cat=bat --paging=never
544 | ```
545 |
546 | ### Aliases for `ls` I use in my `~/.bashrc`
547 |
548 | Prefer eza, then lsd, then regular old `ls`.
549 |
550 | ```bash
551 | if hash eza 2>/dev/null; then
552 | alias ls='eza'
553 | alias l='eza -l --all --group-directories-first --git'
554 | alias ll='eza -l --all --all --group-directories-first --git'
555 | alias lt='eza -T --git-ignore --level=2 --group-directories-first'
556 | alias llt='eza -lT --git-ignore --level=2 --group-directories-first'
557 | alias lT='eza -T --git-ignore --level=4 --group-directories-first'
558 | elif hash lsd 2>/dev/null; then
559 | alias ls='lsd'
560 | alias l='lsd -l --all --group-directories-first'
561 | alias ll='lsd -l --all --group-directories-first'
562 | alias lt='lsd --tree --depth=2 --group-directories-first'
563 | alias llt='lsd -l --tree --depth=2 --group-directories-first'
564 | alias lT='lsd --tree --depth=4 --group-directories-first'
565 | else
566 | alias l='ls -lah'
567 | alias ll='ls -alF'
568 | alias la='ls -A'
569 | fi
570 | ```
571 |
572 | ## Shameless plug: Tools that I've written in Rust
573 |
574 | **[Phraze](https://github.com/sts10/phraze)**:
575 | Generate random passphrases
576 |
 
577 |
578 | **[Tidy](https://github.com/sts10/tidy)**:
579 | A Swiss army knife for word lists
580 |
 
581 |
582 | ## Criteria for submitting a tool to this list
583 |
584 | 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.
585 |
586 | 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.
587 |
588 | You're of course welcome to fork this project and maintain your own list! Check the included LICENSE file for more information.
589 |
590 |
591 |
--------------------------------------------------------------------------------