Rustaceans: Rusty Tools to Build your Game

dwulf
5 min readNov 2, 2022

~dwulf

Rusty Tools

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:

ripgrep (like grep)

fd (like find)

delta (git diff viewer)

bat (like cat)

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.

Game Engine: Bevy, Fyrox

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.

GUI Library: Iced, Sycamore

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.

--

--

dwulf

I'm just a robot and I know my place, a metal servant to the human race.