~dwulf
Getting to know the tools
Before Rust, and during me learning it I used some tools to help me around the CLI. Rust has an abundance of tools created for it. My wheel house is in applying Rust to developing Substrate, but I also have a keen interest in converting and transpiling Python tools to Rust. I am not sure if this would be practical since the rules of memory management are a bit more liberal, and types are loose in Python.
A list of tools that I use somewhat often:
fd (like find)
delta (git diff viewer)
helix — opinionated terminal-based text editor
zellij — terminal multiplexer
alacritty — terminal emulator
ripdrag — drag/drop from terminal
Rust tools that set the record
There’s probably more that I’m forgetting but these are the ones that come to mind. Other than rust language tooling of course (rustc, cargo, rust-analyzer, etc)
I’m still exploring the rust ecosystem, so I probably won’t make a compilation post for a long while but these are the things that I personally found interesting.
Operating System: Theseus, Redox
Theseus is a new OS written from scratch in Rust to experiment with novel OS structure, better state management, and how to leverage intralingual design principles to shift OS responsibilities like resource management into the compiler.
Redox is a Unix-like Operating System written in Rust, aiming to bring the innovations of Rust to a modern microkernel and full set of applications.
Bevy, Data Driven. All engine and game logic uses Bevy ECS, a custom Entity Component System. Fast: Massively Parallel and Cache-Friendly.
Fyrox, Renderer is a “workhorse” of the engine, it draws scenes (both 3D and 2D), user interface, debug geometry and has an ability to add user-defined render passes.
Social Media: Lemmy (Reddit Clone w/ Federation), Plume (Blogging)
Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News: you subscribe to communities you’re interested in, post links and discussions, then vote and comment on them.
Plume enables your command-line tools to ask users to write text in their favourite editor.
Media Player: Glide
Glide is a free and open source minimalistic Media Player for Linux and MacOS. It is written in rust and GTK and based on GStreamer.
Code Forge: Gitoxide (git based VCS), Pijul (New VCS)
gix, Gitoxide, is a command-line interface (CLI) to access git repositories. It’s written to optimize the user-experience, and perform as good or better than the canonical implementation.
Pijul, A distributed version control system.
Signing Tool: Minisign, Signify
Minisign, a pure Rust implementation of the Minisign signature system.
Static Site Generator: Zola, Cobalt
Zola, a fast static site generator in a single binary with everything built-in.
Cobalt, a straightforward static site generator written in Rust.
Markdown based Doc Generator: mdBook
mdBook is a utility to create modern online books from Markdown files.
Frontend Web Framework w/ WASM Support: Perseus, Dioxus, Yew
Perseus is a blazingly fast frontend web development framework built in Rust with support for generating page state at build-time, request-time, incrementally, etc.
Dioxus is a portable, performant, and ergonomic framework for building cross-platform user interfaces in Rust.
Yew is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly.
Backend Web Framework: Axum, Actix
axum is a web application framework that focuses on ergonomics and modularity.
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
Fullstack Framework: MoonZoon, Leptos
MoonZoon, Rust Fullstack Framework.
Leptos, Rust Fullstack Framework.
Iced, a cross-platform GUI library for Rust focused on simplicity and type-safety.
Sycamore is a reactive library for creating web apps in Rust and WebAssembly.
Matrix Protocol: Fractal (Client), Conduit (Server)
Fractal is a Matrix messaging app for GNOME written in Rust.
Conduit is a simple, fast and reliable chat server powered by Matrix.
Email Server: Stalwart JMAP Server, Stalwart JMAP Client, Stalwart MailSend, and pretty much anything else from Stalwart
Stalwart JMAP is an open-source JSON Meta Application Protocol server designed to be secure, fast, robust and scalable.
jmap-client is a JSON Meta Application Protocol (JMAP) library written in Rust.
mail-send is a Rust library to build, sign and send e-mail messages via SMTP.
Database and related tooling: GunDB (ROD), Surrealdb, SQLX, SeaORM, NeonDB
ROD (Rust Object Database). The decentralized social networking application Iris-messenger syncs over Rod peers by default.
SurrealDB is an end-to-end cloud native database for web, mobile, serverless, jamstack, backend, and traditional applications.
SQLx is an async, pure Rust† SQL crate featuring compile-time checked queries without a DSL.
SeaORM is a relational ORM to help you build web services in Rust with the familiarity of dynamic languages.
Neon is a serverless open-source alternative to AWS Aurora Postgres.
Virtualization: Firecracker
Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models.
Virtual Private Network: Innernet, MASQ
Innernet, a private network system that uses WireGuard under the hood.
MASQ Node combines the benefits of VPN and Tor technology, to create superior next-generation privacy software, where users are rewarded for supporting an uncensored, global Web. Users gain privacy and anonymity, while helping promote Internet Freedom.
BitTorrent (v1) Library: Cratetorrent
Cratetorrent is a Rust crate implementing the BitTorrent version 1 protocol.
IPFS Protocol Stack: Iroh
Iroh is a next-generation implementation of the Interplanetary File System (IPFS) for Cloud & Mobile platforms.
Hypercore (Dat) Protocol Stack: Dat-rs
Rust implementation of @datprotocol
I am still learning Rust and its opinions. I think it will be the next big thing for languages of the future, virtually eliminating (by not allowing) un-allocated memory issues.
Got to git right with it
Almost all of the tools have Github, Gitlab, or other code repositories. Dexterity with Git commands are always in vogue, even for non-programed content, like books, or manuals.
I know this is not an exhaustive list of Rust tools, but it is a strong build out to explore and graft into your own rustic weave.