Tools/applications written in Rust

Which tools/applications written in Rust you miss in Fedora repositories?

Do not hesitate to make proposals in a reply!

I’ll keep topic updated with the progress.


Already packaged

Project Description Availability
askalono-cli Tool to detect open source licenses from texts.
base100 Encode your data into emoji.
bat cat clone with syntax highlighting and Git integration.
exa Modern replacement for the command-line program ls, with more features and better defaults. It uses colours to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git.
fd-find Simple, fast and user-friendly alternative to find.
ffsend Easily and securely share files from the command line. A fully featured Firefox Send client.
gcsf FUSE file system based on Google Drive. (rawhide only)
heatseeker General-purpose fuzzy selector.
hexyl Simple hex viewer for the terminal. It uses a colored output to distinguish different categories of bytes (NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII). (rawhide only)
hyperfine Command-line benchmarking tool.
lscolors Command-line tool that can be used to colorize the output of other commands. (rawhide only)
lsd LSDeluxe. Heavily inspired by the super colorls project.
ripgrep Line-oriented search tool that recursively searches your current directory for a regex pattern while respecting your gitignore rules. Similar to other popular search tools like The Silver Searcher, ack and grep.
rpick Command line tool that helps you to pick items from a list, using configurable algorithms.
sd Intuitive find & replace CLI (sed alternative).
silver Cross-shell customizable powerline-like prompt heavily inspired by Agnoster. The faster rust port of bronze.
skim Fuzzy Finder in rust.
ternimal Simulate a lifeform in the terminal.
tokei Program that displays statistics about your code. Tokei will show number of files, total lines within those files and code, comments, and blanks grouped by language.
zola Fast static site generator in a single binary with everything built-in.

To be packaged

Project Description
snowpatch Enabling continuous integration for patch-based development workflows.
Fractal Matrix messaging app for GNOME.
Shortwave Find and listen to internet radio stations.
sccache Shared Compilation Cache.
2 Likes

I’m just getting started with Rust - the one I didn’t see was rustup. Most of the books recommend you install rustup and let it install the rest locally, rather than having a system-wide fixed toolchain.

I think the reason why we don’t want to package rustup is because we don’t want people to use non-system compilers.

The rest of developers can install rustup themselves.

This is why I love the Silverblue concept so much - IMHO the OS should just be the kernel / device manager, a rational command line and a display / desktop - everything else should be isolated in a container via podman or flatpak. Want a Rust toolchain? Run it in a container! :wink:

1 Like

This is precisely why I’m against the idea of Silverblue.

You can also tell rustup about the system toolchain:

$ rustup toolchain link system /usr

And perhaps:

$ rustup default set system

I use this because I do test with different versions while developing crates, but by default I want to use Fedora’s rustc, cargo, and extended tools.

1 Like

To add to this a bit: there are Docker images for pretty much every Rust version, so it’s basically a really nice, isolated rustup.

1 Like

I’d like to see zola, the rust-based static-site generator packaged for Fedora.

I know that it doesn’t use crates.io, though, so I’m not sure if that would impede its ability to be packaged for Fedora.

I’ll add it to my list, thanks!

It is okay, we can package things as long as they are available somewhere and their dependencies are available on crates.io (which seems to be the case).

1 Like

Requesting package: Shortwave

https://github.com/lotabout/skim A general fuzzy finder like fzf.

https://github.com/rschmitt/heatseeker A general-purpose fuzzy selector.

https://github.com/p-e-w/hegemon A modular system monitor.

I’m still planning on packaging rav1e when I have the time:

Request: sccache - Shared Compilation Cache

The dependencies can be trimmed a lot if we disable the features for remote storage and distributed client/server, so it would only support local disk storage. Even then, we’re missing a few things.

I have packaged it and it is available in fedora-updates-testing-modular. It should be enough to do dnf --enablerepo=fedora-updates-testing-modular install heatseeker.

Good news, many apps got into repos all the way back to f28.

As well we have packaged following apps:

  • ffsend Easily and securely share files from the command line. A fully featured Firefox Send client.
  • lscolors Command-line tool that can be used to colorize the output of other commands.
  • lsd LSDeluxe. Heavily inspired by the super colorls project.
  • rpick Command line tool that helps you to pick items from a list, using configurable algorithms.
  • silver Cross-shell customizable powerline-like prompt heavily inspired by Agnoster. The faster rust port of bronze.
  • skim Fuzzy Finder in rust.

Only ffsend and rpick are available in f28/f29/f30 at this point, but we are working on adding the rest.

1 Like
  • watchexec is a simple, standalone tool that watches a path and runs a command whenever it detects modifications.
  • podcast is a command line podcast player.
  • procs is a replacement for ps written by Rust.
  • oxipng A lossless PNG compression optimizer
  • broot A better way to navigate directories
  • jql A JSON Query Language CLI tool built with Rust
  • diskus is a very simple program that computes the total size of the current directory. It is a parallelized version of du -sh .
  • tin-summer Find build artifacts that are taking up disk space
  • dust A more intuitive version of du in rust
  • rm-improved is a command-line deletion tool focused on safety, ergonomics, and performance. It favors a simple interface, and does /not/ implement the xdg-trash spec or attempt to achieve the same goals.
  • cobalt-bin A straightforward static site generator written in Rust.
  • rnr is a command-line tool to rename multiple files and directories that supports regular expressions.
  • amber is a code search and replace tool written by Rust. This tool is inspired by ack, ag, and other grep-like tools.
  • hunter is a fast and lag-free file browser/manager for the terminal. It features a heavily asynchronous and multi-threaded design and all disk IO happens off the main thread in a non-blocking fashion, so that hunter will always stay responsive, even under heavy load on a slow spinning rust disk, even with all the previews enabled.
  • peep The CLI text viewer tool that works like less command on small pane within the terminal window.

I forgot tarssh A simple SSH tarpit, similar to endlessh.

1 Like

Wishlisted app: gifski

Highest-quality GIF encoder based on pngquant.

gifski converts video frames to GIF animations using pngquant’s fancy features for efficient cross-frame palettes and temporal dithering. It produces animated GIFs that use thousands of colors per frame.

Seconding gifski.

Also wishlist for texlab.