Big News: Rustc Hits GCC Milestone!
Today’s Issue: Rust lands in Linux Kernel 6.15, Rust's origins, and SIMD techniques to optimize compare256 function
Happy new month Rustaceans!
Hope you had a fantastic Memorial Day last week (for those in the US), and welcome to another edition of the Rust Bytes newsletter.
In this issue, we’ll discuss some latest news on GCC and Rust compiler, present a Rust tip for you, spotlight an amazing Rust project, and share some incredible links of the week.
Here’s issue 69 for you!
A Message for You
We've updated the weekly challenges website with the most recent challenges. To get past and present challenges, check out the website link here.
The project is open-source too, and you can find it on GitHub here https://github.com/Rust-Bytes/weekly-challenges.
Now, onto our main thing.
THE MAIN THING
Big News: Rustc Hits GCC Milestone!
When we heard the GCC backend for Rust’s compiler pulled off a full stage-3 bootstrap, we spilled our coffee in excitement. This is big, Rustaceans, let’s unpack why this matters for your next Rust project, without boring you to death.
This latest news from the Rust compiler scene deserve a good ear perk. For the uninitiated, this means the GCC can compile Rust… to compile Rust… to compile Rust, which then can build the compiler again, and again, with byte-for-byte identical results.
Here’s why this matters, up till now, building Rust required Rust. It’s like needing a sourdough starter to make sourdough (great if you're baking, weird if you're compiling). But with this GCC backend, Rust can finally build itself using a more traditional toolchain, opening doors to new platforms, especially the ones Rust hasn’t officially supported yet.
It’s a major portability win and a step toward reducing the compiler’s dependency on LLVM, which, let’s be honest, occasionally feels like that friend who’s smart but just so high-maintenance.
While the current victory lap was on x86_64 Linux, they are already eyeing more architectures. Don't get it twisted, there's still a ton of testing and bug squashing to do, but this is a massive win.
It’s more about less friction for devs wanting to deploy Rust apps on different hardware, potentially opening up new frontiers for embedded systems, niche architectures, and maybe even your smart toaster.
So, next time you're banging your head against a compile error, remember that somewhere, a compiler is building itself, just because it can. And that, my friends, is truly metal.
RUST TIP 🦀
Last week, we presented you with a challenge to showcase the usage of ilog method.
Thanks to JumpiiX24, who shared their solution to the challenge. You rock! 🫶
Let's move on to this week’s Rust tip.
#[must_use]
Attribute for Results and Options
This attribute when applied to functions or types ensures that the Result or Option they return is actually handled.
If the caller ignores it, the compiler will issue a warning. It's great for preventing silent errors.
Try it out yourself using this Rust Playground link.
PROJECT SPOTLIGHT 💡
Materialize
Materialize is a real-time data integration platform that empowers organizations to create and maintain consistent, up-to-date views of transactional data using a familiar SQL interface.
Unlike systems that rely on eventual consistency or approximate answers, Materialize ensures correctness and strong consistency, making it ideal for use cases like query offload (CQRS), integration hubs (ODS), and operational data meshes (ODM).
These are some of the features that make Materialize awesome:
Incremental View Maintenance - Materialize recasts SQL queries as dataflows, enabling efficient, incremental updates to materialized views in response to inserts, updates, and deletes, ensuring real-time results without full recomputation.
Cloud-Native Scalability - Its fully managed service offers multi-active replication for high availability, horizontal scalability across machines, and near-infinite storage via cloud object stores like Amazon S3.
Delta-Joins and Optimization - Materialize’s SQL optimizer handles multi-way joins and subquery decorrelation, avoiding performance bottlenecks seen in systems limited to nested binary joins.
Flexible Data Ingestion and Output - It supports direct ingestion from PostgreSQL, MySQL, Kafka, and webhooks, with options for push-based streaming to Kafka or pull-based queries via PostgreSQL-compatible drivers.
Materialize is open-source and available on GitHub at https://github.com/MaterializeInc/materialize.
AWESOME LINKS OF THE WEEK 🔗
The Rust compiler team has demoted i686-pc-windows-gnu to Tier 2, and the Rust Project Goals Update for April is now available.
One year after v0.2, Freya v0.3 is out. For those unfamiliar, Freya is a cross-platform, non-web GUI library for Rust, powered by Skia. This update brings massive improvements, and we extend our thanks to Marc Espin for his dedication.
Rust has officially landed in the Linux Kernel 6.15 stable release with its very own driver in the mainline. Apparently, the release was fashionably late by a few hours thanks to "a last-minute bug report", guess even cutting-edge code needs to hit the snooze button sometimes!
Rust in Production interviewed Niko Matsakis and talked about Rust's origins, sharing a personal and honest assessment of its strengths and weaknesses, while offering insights into the language's future direction. [video]
Edward Li compared Pyrefly and ty, Python’s New Rust-Based Type Checkers.
SeaQL's Rust Nerds released FireDBG for Rust, an open-source Time Travel Visual Debugger for Rust, enabling you to visualize and debug Rust programs.
Watch out, GNU! Coreutils v0.1.0 has been released, offering performance improvements that meet or surpass GNU Coreutils, making it a compelling alternative for Ubuntu, which is considering adopting it over GNU Coreutils.
Folkert from Tweede golf wrote about the use of SIMD (Single Instruction, Multiple Data) techniques to optimize the compare256 function in the zlib-rs compression library.
Jon Gjengset(Author of Rust for Rustaceans) introduced Sguaba, an open-source crate that simplifies geospatial coordinate transformations for systems like WGS84, ECEF, NED, and FRD, using Rust’s type system to prevent errors.
Godot-rust v0.3 brings type-safe signals and tons of improvements.
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.
Get 40% off when you sign up here. [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.
I met a friend over the weekend, had some lunch together and it felt so good to catch-up after a while.
That's all for now, Rustaceans.
John & Elley.