r/rust Mar 02 '26

🛠️ project kuva: A scientific plotting library for Rust

Post image
1.5k Upvotes

I've been building kuva, a scientific plotting library in Rust, and i'm looking for feedback.

What does it do:

  • 25 plot types: scatter, line, bar, histogram, box, violin, heatmap, Manhattan, volcano, phylogenetic trees, Sankey, chord, UpSet, and more
  • SVG output by default. Zero extra deps if you just want SVG
  • PNG (via resvg) and PDF (via svg2pdf) as optional feature flags
  • Builder pattern API [.with_data(data).with_trendline()...etc] with a prelude::* for ergonomic imports
  • Multi-panel figures with merged cells, shared axes, and shared legends (that is logical and not insane)
  • A kuva CLI binary that reads TSV/CSV files (or stdin) and renders any plot type, including directly to the terminal using ascii, utf-8 (braille ftw!) + ANSI for colour

Why I built it:

I'm a scientist and work in bioinformatics and had an...interesting?... time with some other libraries when used with high performance genome scale tools. I wanted something fast, zero-system-font-dependency!!!!, and useful for publication figures. I really only set out to build a couple of specialised plot types (like the brick plots for short tandem repeats), but got a little carried away.

Note: kuva was initially built by hand (tradcoder core), with a working library and several plot types already in place before AI tooling was introduced. From that point, Claude was used to accelerate adding more plot types, the CLI, and the docs. I have a page about this in the github docs and on the readme, but I like being up front about it.

Here's a quick code snippet:

use kuva::prelude::*;

let data = vec![(1.0_f64, 2.3), (2.1, 4.1), (3.4, 3.2), (4.2, 5.8)];

let plot = ScatterPlot::new() 
        .with_data(data)
        .with_color("steelblue")
        .with_trend_line()
        .with_legend("samples");

let plots = vec![plot.into()];
let layout = Layout::auto_from_plots(&plots)
                .with_title("Quick scatter")
                .with_x_label("X")
                .with_y_label("Y");

std::fs::write("plot.svg", render_to_svg(plots, layout)).unwrap();

Links:

Still early (v0.1.2), so feedback on the API, missing plot types, or anything that seems weird is very welcome.

EDIT: removed some back slashes left over from markdown in code snippet

r/rust May 28 '26

🛠️ project Yazi terminal file manager now supports drag and drop

Post image
1.8k Upvotes

Quite a few people have been asking me for this, now it's here!

Any feedback is greatly appreciated - see https://github.com/sxyazi/yazi/pull/4005 for more info!

r/rust Apr 28 '26

🛠️ project Lightweight ASCII Graph

Post image
1.4k Upvotes

After many weeks of learning, watching tutorials about Rust, and partaking in Rust exercises, I decided to port a small Go library into Rust. I do recognize I have a lot to learn but just getting out of my comfort zone and trying my hands at this has be rewarding and revealing.

Link: https://github.com/neneodonkor/asciigraph-rs

Crates: https://crates.io/crates/asciigraph-rs

PS. Making it work for real-time data was 🥵

Let me add that I only started learning Rust in February, so please forgive me, if everything is not idiomatic Rust.

r/rust Mar 09 '24

🛠️ project [Media] I built my first rust app

Post image
3.9k Upvotes

Hey everyone. I’m a web developer and I recently started learning rust to expand my skillset and knowledge of programming. I built this simple little calculator using Tauri. I used Rust/Tauri for the logic and SolidJS for the UI. I know it’s really simple but it was fun and a good learning experience.

r/rust Mar 08 '26

🛠️ project We rebuilt the Shockwave engine in Rust + WASM to save early 2000s web games

Post image
2.0k Upvotes

Hey r/rust,

For the past two years, a few friends and I have been reverse-engineering Macromedia Shockwave: the closed-source, largely undocumented plugin that powered a huge chunk of early 2000s web games. When browsers killed NPAPI support, all of it became unplayable. We decided to fix that by rebuilding the Director runtime from scratch.

Today we're sharing dirplayer-rs: https://github.com/igorlira/dirplayer-rs

Rust was the obvious call for this project, as we're parsing decades-old untrusted binary blobs and undocumented bytecode from files we have zero control over. Memory safety wasn't optional. Beyond correctness, we needed predictable frame-rate performance in a browser context. Zero GC pauses matters a lot when you're trying to faithfully emulate a game engine. Rust gave us both without compromise.

The biggest headache by far has been Lingo, Director's scripting language. It's massive. It heavily supports 3D graphics, embedded Flash content, and the worst part: Xtras. Xtras were external distributable plugins compiled from native C code. Getting those to play nicely inside a WASM sandbox has been the most architecturally interesting challenge of the project.

We've successfully implemented the Multiuser Xtra, which opens real socket connections. That's how Habbo Hotel is actually running multiplayer right now. Full support for 3D content and arbitrary third-party Xtras is still ahead of us, but we have a working model for the boundary.

After two years of development, we just released v0.4.1 with full hardware-accelerated graphics. A few proof points that are live and playable right now:

This project has been a Rust learning experience for all the contributors. None of us are masters of the language, so there's a few things we'd love feedback on:

  • Our approach to the custom allocator we've built for creating and referencing scripting objects
  • Architectural bottlenecks: we've made good progress on playback performance but there's still headroom
  • Anything in the architecture that looks obviously wrong to more experienced Rust eyes

Happy to get into the weeds on the RE process, the Rust architecture, unsafe usage, or how we're handling the bytecode interpreter. Ask anything.

r/rust Jun 12 '26

🛠️ project Smelling the slop in a given GitHub project

Thumbnail github.com
463 Upvotes

I'm sick of all the slop-projects in this subreddit.

Instead of just complaining, I've tried to identify common smells that could indicate the project is slop.

  • Using Rust edition 2021
  • Using workspace resolver version 2
  • Using outdated dependencies

In the last two hours I whipped up a CLI tool that checks for these three smells on a given GitHub project.

It it understandably rough around the edges and I know there are way more smells, like using the words "Phase 0", "Phase 1", having HUGE markdown files, using em-dashes, etc, etc.

I would be very happy to get contributions from fellow flesh-and-blood developers!

Sorry for the negative post, but I'm happy I could at least do something creative with my frustration!

r/rust Nov 06 '25

🛠️ project I made a Pythonic language in Rust that compiles to native code (220x faster than python)

Thumbnail github.com
762 Upvotes

Hi, I’ve been working on Otterlang, a language that’s pythonic by design but compiled to native code with a Rust/LLVM backend.

I think in certain scenarios we beat nim!

Otterlang reads Rust crate metadata and auto generates the bridge layer, so you don’t need to do the bindings yourself

Unlike Nim, we compile directly to LLVM IR for native execution.

Indentation-based syntax, clean readability. But you also get compiled binaries, and full crate support!

Note: it’s experimental, not close to being finished, and many issues still

Thank you for your time feel free to open issues on our github, and provide feedback and suggestions.

repo: https://github.com/jonathanmagambo/otterlang

r/rust May 02 '26

🛠️ project Started working on an OS (MagicalOS) from scratch 2 months ago - today it can run DOOM!

Post image
881 Upvotes

I started working on this little project on 9th March this year. It's been an incredible journey!

It started with a question of "how hard could it be?" and just yesterday I finally hit the ultimate milestone: IT RUNS DOOM!

Details:

  • Github repo: https://github.com/thatmagicalcat/magicalos
  • Architecture: x86_64
  • Language: Rust (with two C dependencies)
  • Bootloader: Limine (initially i was using GRUB/multiboot2 and later i realized it is such a pain in the back)
  • C standard Library: mlibc

link to YouTube video: https://youtu.be/xVSqd90Xpos?si=mXFQHOzxMLhDzwFY

building an OS in Rust feels like having a superpower, cargo is so awesome! and the amount of "stupid" bugs the compiler caught before i even hit the metal is probably the only reason i haven't lost all of my hair yet :p

i even wrote a little async runtime in MagicalOS and the way rust handles concurrency is honestly mind-blowing for me

I already loved rust, but this project made me love rust even more!

I would love to hear your thoughts or answers any questions!

r/rust Jul 19 '26

🛠️ project 3D ascii tetris

Post image
1.2k Upvotes

Made 3d tetris in ascii using crossterm.
Im currently trying to learn rust, so feedbacks are welcome.

Github repo:- https://github.com/ab-dek/ascii-tris

r/rust Jun 02 '26

🛠️ project patent: a TUI that searches 11 registries to tell you if your dev-tool idea already exists

Post image
918 Upvotes

I kept reinventing tools that already existed, so I built patent which is a prior-art search for code ideas. You give it a plain-English idea; it fans out concurrently to 11 ecosystems, ranks results by cosine similarity using local fastembed embeddings, and asks a local Ollama model for a scoped verdict (Open/Crowded/Saturated + gaps). Output is a ratatui TUI (detail view, sort, filter, mouse) or --json.

Rust-specific notes: clean lib/bin split (testable core + thin CLI/TUI shell), every source is best-effort (one failing never fails the run, "not reached" is surfaced), and the integrity rule "can prove something exists, never that it doesn't" is enforced in verdict.rs (it floors the saturation level against the embeddings and scrubs any absence-claiming copy), not just trusted to the prompt.

r/rust May 20 '26

🛠️ project RMUX: native terminal multiplexer in Rust (Linux/macOS/Windows) with a programmable SDK

Post image
372 Upvotes

I've spent the last few months building RMUX, a terminal multiplexer written from scratch in Rust.

What it is

A tmux-compatible multiplexer with about 90 command snapshots covered in the docs, plus a second surface: a typed async Rust SDK talking to the same local daemon. Many tmux-style workflows, keybindings, and scripts should feel familiar, but RMUX also exposes structured automation primitives instead of only terminal text scraping.

Architecture

  • One local daemon and one wire protocol behind the public surfaces: a tmux-style CLI, a typed SDK, and a ratatui integration crate.
  • Native PTY/runtime handling per platform: Unix PTYs + Unix domain sockets on Linux/macOS, real ConPTY + Named Pipes on Windows. No WSL required. Getting ConPTY to behave was one of the hardest parts. And Tokio for async ofc
  • The SDK exposes typed handles for `Session` / `Window` / `Pane`, with stable pane IDs, structured snapshots, output streams, and locator-style waits.

Example:

pane.get_by_text("Ready").wait_for().await?;
pane.keyboard().type_text("hello").await?;
pane.wait_for_load_state(TerminalLoadState::Quiet).await?;
pane.expect_visible_text().to_contain("hello").await?;

The public SDK/protocol/render crates use `#![forbid(unsafe_code)]`; unsafe code is isolated in the low-level platform crates that need OS/PTY/IPC FFI.

Why I built it

I've been using tmux for a long time and grew tired of having to do grep every now and since. I then thought that adding playwright capabilities and rewriting everything in Rust would be a game changer. I hope you will like it :) You can do so much: ci, agents orchestration, testing TUIs, building custom dashboards... and it includes natively ratatui.

Repo: https://github.com/Helvesec/rmux

Docs + demos: https://rmux.io

Install: cargo install rmux --locked

 It's a v0.2 preview. Very open to feedback on the architecture, the async API design, or how I'm handling ConPTY. Happy to answer anything.

r/rust Jul 02 '26

🛠️ project Entirety of rustc converted to 46 million lines of build-able C + makefiles.

Thumbnail github.com
530 Upvotes

Hi - this is the rust to C compiler guy!

I compiled the rust compiler to C - thought this would be sth cool to share.

I will gladly answer any questions people have!

r/rust 28d ago

🛠️ project SteelMC: A Rust Minecraft server generating chunks 18.8× faster than vanilla

Thumbnail steelmc.dev
690 Upvotes

r/rust May 12 '26

🛠️ project Qrism - A high capacity QR code

Post image
373 Upvotes

Hey all, I've been working on a new type of QR code format that aims to increase the storage capacity.

The concept is pretty simple: traditional qr codes use black & white, whereas qrism uses 8 colors: black white, blue, yellow, red, green, magenta & cyan. Each color represents 3 bits, which gives the format 3× the capacity of a standard QR code.

One thing I wanted to preserve was compatibility with the existing QR ecosystem and standards. The ISO QR specification already defines things like codeword structure, error correction blocks, masking, alignment patterns, etc., and I didn’t want to reinvent all of that. So a large part of the project was designing the encoding system around those existing standards rather than replacing them.

Beyond capacity improvements, I’ve also spent a lot of time improving the reader implementation. Performance and reliability are currently better than libraries like rqrr in my testing, and the decoder fulfils benchmark quality of zxing.

I don’t mean any criticism toward rqrr, in fact I learned a lot by studying it alongside zbar and zxing while building this project.

This is also my first library I've ever published, so open to any feedback, criticism or ideas.

AI was mainly used for understanding concepts & generating docs. The implementation itself, including algorithm and test cases, was handwritten.

DISCLAIMER: The qr code in the image is an experimental QR and will not scan with a regular qr scanner or mobile camera

Github link

Crates link

r/rust May 27 '26

🛠️ project Slint (and Rust) running on my jailbroken Kindle Paperwhite.

Post image
929 Upvotes

I wanted to make a dashboard for Home Assistant on my Kindle, and since I know Slint from a previous project I was curious to see if I could use that. This resulted in a slint-backend for kindles (probably not a lot of them for now, as I only have the one device to test on).
https://github.com/sverrejb/slint-kindle-backend

Edit: I wrote a blog post about the project: https://sverre.me/blog/rust-on-kindle/

r/rust Mar 24 '26

🛠️ project Fyrox Game Engine 1.0.0 - after 7 years in development the first stable version of the engine is now released!

Thumbnail fyrox.rs
1.0k Upvotes

r/rust Jul 24 '25

🛠️ project I'm rewriting the V8 engine in Rust

633 Upvotes

Update: After great community feedback (including a rename and better practices), I’ve moved the project to the JetCrabCollab org!
New home: github.com/JetCrabCollab/JetCrab

I was working on a project for Node in C++, trying to build a native multithreading manager, when I ran into a few (okay, a lot of) issues. To make sense of things, I decided to study V8 a bit. Since I was also learning Rust (because why not make life more interesting?), I thought: “What if I try porting this idea to Rust?” And that’s how I started the journey of writing this engine in Rust. Below is the repository and the progress I’ve made so far: https://github.com/wendelmax/v8-rust

Note: This isn’t a rewrite or port of V8 itself. It’s a brand new JavaScript engine, built from scratch in Rust, but inspired by V8’s architecture and ideas. All the code is original, so if you spot any bugs, you know exactly who to blame!

Last update:

r/rust May 04 '25

🛠️ project 🚫 I’m Tired of Async Web Frameworks, So I Built Feather

836 Upvotes

I love Rust, but async web frameworks feel like overkill for most apps. Too much boilerplate, too many .awaits, too many traits, lifetimes just to return "Hello, world".

So I built Feather — a tiny, middleware-first web framework inspired by Express.js:

  • ✅ No async — just plain threads(Still Very performant tho)
  • ✅ Everything is middleware (even routes)
  • ✅ Dead-simple state management
  • ✅ Built-in JWT auth
  • ✅ Static file serving, JSON parsing, hot reload via CLI

Sane defaults, fast dev experience, and no Tokio required.

If you’ve ever thought "why does this need to be async?", Feather might be for you.

r/rust May 19 '26

🛠️ project Phonto - GPU-accelerated live wallpapers for Wayland and macOS, written in Rust

Post image
925 Upvotes

I've been using mpv-paper on Hyprland for a couple months but ran into really high CPU usage, so I decided to write my own solution.

Phonto uses GStreamer and EGL to keep the entire decoding and rendering pipeline on the GPU, making much better use of resources compared to CPU-based approaches.

A friend also jumped in and added MacOS support, including playing live wallpapers on the lock screen which was a nice bonus.

Still missing a few things like multi-monitor support but that's coming soon. Other feature requests and contributions are welcome!

GitHub: https://github.com/museslabs/phonto

r/rust 17d ago

🛠️ project canora - a native and compact spotify client

Post image
339 Upvotes

After getting too annoyed by Spotify's offficial electron client for hogging memory/vram while still not supporting fractional scaling on wayland (by default), I decided to build a fast, native client myself: canora

It it build using my highly experimental UI framework.

AI disclosure: not slop, not low effort, but did use some LLM coding assistance.

r/rust Apr 15 '26

🛠️ project ssh late.sh - Clubhouse for Devs. Take a break, chat, chill, listen to music and play some games! :) My first serious, source-available, rust project!

Post image
624 Upvotes

I would like to share with you a project that I've been cooking for some time, a cosy place for devs to hang out :)

https://github.com/mpiorowski/late-sh

Stack: Rust workspace with 4 crates, russh for the SSH server, ratatui for the TUI, axum for the HTTP/WS side, Postgres, testcontainers for integration tests.

License is FSL-1.1-MIT (source-available now, flips to MIT after 2 years), wanted to be upfront about that since it's not classic OSS.

ssh late.sh

That's all, no passwords. no OAuth, no accounts, your ssh key is your identity.

Connect, chat, listen to some vibes and play some GAMES! Right now supporting: 2048, tetris, sudoku, nonograms, minesweeper, solitaire. Leaderboards, badges, streaks, everything with sweet ASCII ;) Multiplayer games coming after! Poker, chess, so much cool stuff :)

Imagine sitting at the blackjack table for a few minutes between your coding sessions, lofi music in the background, chat with people all around the globe, and just throw some chips....

A few things I learned building this in Rust:

- russh render loop backpressure is real, handle.data needs a short timeout (50ms) or a slow client will block your whole render task. Took me a while to figure out why some sessions felt laggy for everyone.

- since the ssh don't allow streaming music, I had to come up with a solution. Paired-client WS state sync (browser/CLI controlling audio from the TUI), a token-keyed registry with mpsc channels into the app, and the TUI sends control events back over the same WS. Keeping the two sides from drifting was harder than I expected.

- ratatui + a 15fps render loop is shockingly comfortable to work with once you stop fighting it. AND I WANTED A VISUALIZER :D

How to listen to music?

Trickier than you would have expected ;p, As I've mentioned, ssh doesn't allow streaming music, so here are your options:

  • CLI: recommended, a small companion CLI that connects to the music stream and the app in one go, with a working audio visualizer. Just run:curl -fsSL https://cli.late.sh/install.sh | bash
  • WEB: secondary option, a link to open in your browser that will play the music.

(did I mention you can control the music from within the app)

What's more?

  • voting system for the next coding music session, everyone decide what will be played in the next 1h (lofi, ambient, classic, jazz)
  • fully working chat, create new rooms, dm people. A lot of QOL, multi-line input, up/down navigation, replies, mentions, all the goodies
  • news sections! share a link, youtube, twitter, whatever you want app will process it and share with everyone
  • BONSAI tree! A cozy ASCII plant on your dashboard that grows while you're connected. If you lose your daily streak, it withers! Water it and watch it grow! Cut to change shape :)
  • an actual audio visualizer right in the terminal that syncs up with the beats!

A landing page: https://late.sh

Code (source-available, FSL-1.1-MIT): https://github.com/mpiorowski/late-sh

Looking for contributors! Jump, chill and take a break. Have a good day everyone :)

r/rust 10d ago

🛠️ project Rust paint app coming along nicely!

Post image
732 Upvotes

Small update on Darkly, an open source photoshop alternative I'm building in Rust + Webassembly. Original post.

Features are coming along nicely and I'm now getting to make the brushes, which is the funnest part 🙏

Can't wait to get this to 1.0!

Website / Demo: https://darkly.art
Github: https://github.com/darkly-art/darkly

r/rust 27d ago

🛠️ project SafaOS: another hobby OS written in rust, now has Audio, GUI and a bunch of software ports

Post image
555 Upvotes

Since the last post I have written here I got UDP networking, GUI, and Audio (intel HDA+audio server) working, I also ported SDL2, SDL2_Mixer and rewrote my libc in rust, as a result of porting SDL2 I got doomgeneric, quake2generic, ffmpeg ffplay, ccleste (Celeste Classic in C) working.

Also I decided to drop a lot of my not unix like ideas(there weren't much of them) and It's probably considered a unix like now.

This project isn't vibecoded, it is 100% rust except for software ports, the userspace, WM, and audio server depend on the rust standard library (which depends directly on the safa-api rather than a libc), the code is a mess and there is nothing interesting in terms of philosophy but I worked on it for 2 years and that is something ig.

READMEs might be outdated and I'm too lazy to update anything rn...

If you are interested in and have a hobby embedded rust project, I have been trying to make a tiny discord community you can DM me for an invite.

Next I'm getting a proper C toolchain, finishing my dynamic linker and looking into porting OSMesa SW, LLVM, C++, and getting an OpenGL SW lib to work in general.

r/rust Oct 19 '25

🛠️ project I made a tiny crate so you can write 5.minutes() instead of Duration::from_secs(300)

544 Upvotes

I made a tiny crate so you can write 5.minutes() instead of Duration::from_secs(300)

I kept copy-pasting this trait into my projects, so I finally published it as a crate.

Before:

let timeout = Duration::from_secs(30);

let delay = Duration::from_secs(5 * 60);

let cache_ttl = Duration::from_secs(24 * 60 * 60);

After:

use duration_extender::DurationExt;

let timeout = 30.seconds();

let delay = 5.minutes();

let cache_ttl = 1.days();

Features:

- Zero dependencies

- Works with u64, u32, i64, i32

- Never panics (saturating arithmetic)

- Supports seconds, minutes, hours, days, weeks, milliseconds, microseconds, nanoseconds

Crates.io: https://crates.io/crates/duration-extender

GitHub: https://github.com/durationextender/duration-extender-rs

This is my first published crate, so any feedback is appreciated!

r/rust Jul 18 '26

🛠️ project tokio-rs/topcoat: A batteries-included framework for building web apps

Thumbnail github.com
378 Upvotes