The State of Rust GUI – The Good and Bad
Today’s issue: 2025 the Year of Rust at Microsoft, Async From Scratch, and Two Years of Rust
Hello Rustaceans!
Hope you’re having a wonderful Easter.
In this issue, we’ll highlight the findings from the Rust GUI survey, share a Rust tip, spotlight an amazing Rust project, and share some incredible links of the week.
Here’s issue 63 for you!
A Message for You
Rust Bytes now has over 1,000 Rustaceans subscribed to our emails, and we wouldn’t have made it without you. We are grateful for your support in helping us reach this milestone, and we’re excited for what’s next.
If you enjoy our emails, please share the excitement with your fellow Rustaceans.
Now, onto the main topic.
THE MAIN THING
The State of Rust GUI – The Good and Bad
The survey on the state of Rust Graphical User Interfaces (GUIs) 2025 is out, and Melody Horn, aka boringcactus, is back with another insightful and inspiring contribution.
The survey assessed 43 GUI crates listed on Are we GUI Yet?, evaluating their ability to build a simple application featuring a text label and an input field that updates the label.
The survey was conducted on Windows and evaluated the libraries based on three main criteria.
Does it work at all? Whether the library could successfully implement the task (a text label and input field with two-way binding).
Screen reader accessibility to determine whether the Windows Narrator could read the text in the label and input field.
IME functionality to identify whether the Windows Japanese IME could correctly input the kanji for "Tokyo" (東京) using the input sequence, including proper handling of the composer (converting to hiragana) and converter (selecting kanji).
Well, let’s start with the good findings from this survey:
The Rust GUI ecosystem has grown significantly since 2021, with 43 libraries surveyed, reflecting active experimentation and development. Several crates like Dioxus, Slint, egui, Freya and Xilem stand out for specific strengths.
Crates like Dioxus, Slint, egui, and WinSafe fully support Windows Narrator, a significant step forward from 2021. Partial accessibility in libraries like Freya, Vizia, and Xilem suggests ongoing efforts, even if not yet perfect.
Dioxus, fltk, GTK 4, Relm4, GPUI, WinSafe, and Slint handle IME input correctly, enabling compatibility with complex input systems like Japanese. This is crucial for internationalization.
For the survey’s minimal task, libraries like Dioxus, egui, Floem, Slint, and Xilem offer relatively straightforward APIs, often rivaling the simplicity of React. Slint’s DSL and egui’s macro-free approach are particularly notable for developer experience, while Dioxus benefits from familiarity for web developers.
Crates like Dioxus, Slint, and Tauri leverage web or native technologies to target multiple platforms. Slint’s free desktop/web licenses and Tauri’s lightweight WebView2/WebKitGTK approach (compared to Electron) are steps toward efficient cross-platform development.
The not-so-good findings:
Of the libraries surveyed, 94.4% aren't production-ready due to issues like build/setup failures, missing critical tested features, usability issues, or being outdated and unmaintained.
Most libraries, such as Floem and Iced, lack Narrator support and have incomplete accessibility features, limiting their use in accessible applications.
Some libraries like Cushy and Floem struggle with IME functionality, either hiding the composer, displaying it awkwardly, or failing to activate it, alongside font issues for complex languages.
Rust’s GUI libraries in 2025 are like a box of chocolates: some are sweet (Dioxus), some are nutty (egui), and some are just plain stale.
If you’re considering Rust GUI development, bring patience and hope for improved accessibility. The future’s bright, but it’s still got some bugs to squash. Now, who’s ready for the 2026 rematch?
If you're curious and want to read further, check the full survey here A 2025 Survey of Rust GUI Libraries (13 Apr 2025).
RUST TIP 🦀
Last week, we had you solve the merge intervals challenge.
Kudos to Valentin B, abeeujah, Rishabh, Serpent7776, and Simon Something who shared their solutions to the challenge. You rock! 🤘
Let's move on to this week’s Rust tip.
Boost Productivity with Cargo Aliases
Tired of repeatedly typing cargo run, cargo build, or cargo check? You can simplify your Rust workflow with these built-in Cargo aliases that save time and reduce keystrokes.
PROJECT SPOTLIGHT 💡
Rayhunter
Rayhunter is a proof-of-concept project aimed at increasing transparency around cellular surveillance. It can be used to detect cell-site simulators (CSS), also known as IMSI catchers or Stingrays.
It provides an accessible way to monitor for potential spying, enabling activists, journalists, and privacy enthusiasts to gather data on CSS usage, contributing to a broader understanding of surveillance technologies.
Cell-site simulators pose significant privacy risks by mimicking legitimate cell towers to trick nearby phones into connecting, allowing them to log unique identifiers like IMSI and IMEI numbers or even pinpoint device locations without telecom involvement.
Features that make Rayhunter awesome.
Runs on the Orbic RC400L, a mobile hotspot costing $20 or less, making it widely accessible compared to costly alternatives.
Continuously analyzes control traffic (not user data) between the hotspot and cell towers, flagging suspicious events like forced 2G downgrades or unusual IMSI requests, which are common CSS tactics.
Displays a green line on the device’s screen (blue in colorblind mode) when safe, turning red to alert users of potential CSS activity. A web UI, accessible via Wi-Fi or USB, lets users start/stop recordings, download logs, and view heuristic analyses.
Captures QMDL (Qualcomm debug logs) and PCAP files for detailed forensic review, aiding research into CSS behavior.
While tested on the Orbic RC400L, it may work on other Linux/Qualcomm devices with root access, broadening its future applicability.
Note: Rayhunter comes with a legal disclaimer: while likely permissible in the U.S., users outside the U.S. should consult local laws. Always use it responsibly, as logs may contain sensitive data like IMSI numbers.
Rayhunter is open-source on GitHub at https://github.com/EFForg/rayhunter.
AWESOME LINKS OF THE WEEK 🔗
Gerd Zellweger from Feldera wrote an article on Cutting Down Rust Compile Times From 30 to 2 Minutes With One Thousand Crates.
Victor Ciura from Microsoft appeared on Rust in Production, discussing Microsoft’s efforts to rewrite Hyper-V components in Rust and declaring 2025 “the year of Rust at Microsoft.” [podcast]
Natalie Klestrup Röijezon’s authored Async from Scratch series that tackles high CPU usage in Rust async programming, using wakers and context to optimize polling for efficient task pausing. It’s fun!
Ohad Ravid wrote on BTrees, Inverted Indices, and a Model for Full Text Search, presenting a mental model for full-text search engines, and a BTreeMap-based inverted index, covering tf-idf ranking, sharding, prefix searches, and multi-field filtering.
Nik Revenco open-sourced Ferrishot, a Rust-based screenshot application inspired by Flameshot, with support for Windows, macOS, and Linux.
Filtra’s March Rust Jobs Report is out signaling a slight decline to 1,076 job postings across 103 companies, and highlights AI-driven growth in data science and a persistent scarcity of entry-level positions.
Yann Hamdaoui from Tweag published Practical recursion schemes in Rust: traversing and extending trees, discussing how to create flexible and extensible tree structures, even if their traversal utilities are less idiomatic in the language.
Fernando Borretti’s Two Years of Rust is a retrospective on his experiences writing production-ready Rust code for a B2B SaaS product.
Nicolas Fränkel authored a guide on managing high-cardinality build flags in Rust, demonstrating how to generate multiple Rust binaries from a single codebase.
Christian Legnitto, from the Rust GPU project, successfully ported the popular Shadertoy shaders to Rust using the Rust GPU framework.
CodeCrafters: Become a Better Rust Engineer
CodeCrafters created amazing Rust courses that push your skills beyond the basics.
You’ll have fun building real-world projects from scratch, including Git, Docker, Redis, Kafka, SQLite, Grep, BitTorrent, HTTP Server, an Interpreter, and DNS.
The courses are self-paced, so you can learn at your own speed.
If you’re itching to level up your Rust skills, these courses are perfect for you.
Here’s what makes CodeCrafters stand out:
Learn by building projects that challenge you beyond just implementing CRUD features.
Strengthen your fundamentals by working on awesome low-level projects.
Get really good at reading and writing idiomatic Rust code.
Plus, take part in monthly contests for a chance to win exciting prizes.
You can get your CodeCrafters fees fully reimbursed through your corporate Learning & Development (L&D) budget.
Be sure to check with your employer about tapping into your L&D budget to save money and make this a no-brainer opportunity to level up your skills.
Don't take our word for it. See what others have to say. [affiliate]
SUPPORT RUST BYTES
You’re Rust Bytes’ biggest fans, and we love to see it.
Here’s how you can help spread the word:
❤️ Recommend Rust Bytes to your friends.
🤳 Connect with us on our socials: X, BlueSky, Mastodon, Publication.
☕️ Support our editors by buying us coffee.
📨 Email us at rustaceanseditors@gmail.com for sponsorship, feedback or ideas.
Hope you’re doing great and taking care of yourself.
That's all for now, Rustaceans.
John & Elley.