Rust’s Big Fix for Crates 🦀
Today’s Issue: Google Open-Sources Rust Cloud API Libraries, Using Rust To Control Hundreds of Satellites, and Making Unsafe Rust a Little Safer
Hello, Rustaceans
Wishing you a fantastic week ahead, despite everything going on. Let's go!
In this issue, we’ll discuss an RFC intended to fix package ecosystem, present you a Rust tip, spotlight an amazing Rust project, and share ten (10) incredible links of the week.
Here’s issue 75 for you!
A Message for You
We recently launched an initiative intended for Rustaceans who create exceptional content, courses, resources, and tools that greatly benefit the Rust community.
If you know someone whose Rust-related content or work you admire, we’d love to hear about them and consider supporting their efforts in the near future.
Help us by sharing their information through GitHub.
Now, onto our main news.
THE MAIN NEWS
Rust’s Big Fix for Crates 🦀
Let’s face it Rustaceans, our worst nightmare isn’t just the borrow checker anymore. It’s the hours we waste on crates.io, often paralyzed by choice, wondering which rand fork won’t smuggle a supply-chain attack into the codebase.
Fed up with this problem too, Josh Aas introduced the Extended Standard Library (ESL) proposal in May, with a bold plan to bless a select crew of crates with a shiny trustworthy badge. But the question remains: will it solve the problems it is intended to address?
The ESL is still an open RFC in the GitHub debates, and it aims to curate a set of go-to crates like serde or syn, backed by the Rust Foundation and Internet Security Research Group (ISRG). They’re planning to raise $300k in year one, scaling to $850k by year three, to fund full-time maintainers, admin support, and grants.
The pitch? Fewer unvetted dependencies, less “hope for the best” coding, and a smoother dev experience. Imagine picking a crate knowing it’s got solid security policies and enough maintainers to avoid the dreaded “abandoned” tag.
But here’s the rub: the community’s split. Some devs love the idea of a vetted crate shortlist, but others warn it could stretch maintainers thin and increase supply chain risks. Others point out that “picking winners” might spark drama, stifling innovation if your fave crate doesn’t make the cut.
And what if an ESL crate depends on a non-ESL one? Do we bless the whole dependency tree or risk an XZ-style oopsie? The RFC’s light on answers, leaving some devs pushing for clearer trust mechanisms, like using Cargo Vet.
If the ESL lands, it could mean less time Googling “is this crate safe?” and more time writing code. But if it flops, we’re back to dependency roulette, and nobody’s got time for that. The RFC’s still open, so expect more Rustacean brawls before anything’s set in stone.
Trusty crates or a centralized crate-astrophe? Only Rust’s GitHub warriors will decide.
RUST TIP 🦀
In our previous issue we shared a Rust tip for controlled panic handling and situations where it’s most useful.
Let’s move on to this week’s tip.
Using matches! Macro for Concise Pattern Matching
The matches! macro checks if a value matches a pattern, returning a boolean without requiring a full match expression.
It's ideal for concise conditionals, especially with enums or complex types, avoiding verbose pattern matching.
You can play around with the code on Rust Playground.
PROJECT SPOTLIGHT 💡
bat - A Cat Clone with Wings
Bat is a Rust-based utility that’s like cat
on steroids. Bat transforms how you view files in the terminal with colorful syntax highlighting, Git integration, and a user-friendly interface.
Bat tackles the pain points of plain cat
: lackluster output, no syntax awareness, and minimal integration with modern workflows.
It solves these by adding vibrant visuals and practical features, making it easier to parse code, spot changes, and handle diverse file types, all while staying a drop-in replacement for cat
.
What makes Bat Awesome
Syntax Highlighting - It supports a ton of programming and markup languages, turning raw code into a rainbow of readable text.
Git Integration - Bat shows file modifications right in the output, so you can track changes without leaving the terminal.
Non-Printable Character Display - You can use
-A
to reveal hidden characters like tabs or newlines—perfect for debugging.Automatic Paging - Pipes output to
less
for large files, but you can tweak it to act likecat
with--paging=never
.
And the icing on the cake is that it’s open-source on GitHub at https://github.com/sharkdp/bat.
AWESOME LINKS OF THE WEEK 🔗
The Rust crates.io team released a development update highlighting several improvements. Trusted Publishing with OIDC streamlines secure GitHub Actions releases. Dynamic OpenGraph images, docs.rs rebuild triggers, and README alerts improve crate sharing and management.
Colin Breck’s “Making Unsafe Rust a Little Safer” discusses how to detect memory errors in Rust programs that interface with C or C++ code via foreign function interfaces (FFI).
Rust Bangalore meetup will be happening on 26th of this month. It will be an in-person meetup, and to our Indian fans, you don’t wannah miss this!
Olivier Faure published “Variadic Generics ideas that won't work for Rust”, explaining how to add variadic generics to Rust to support traits for tuples with arbitrary fields. He highlights three problematic proposals - using iterators, recursive tuple destructuring, and first-class types - citing issues like type safety, compiler complexity, and poor developer experience.
Google open-sourced it's Cloud API Client Libraries for Rust.
Yoshua Wuyts wrote about “Replacing Background Tasks With Actors”, tackling the challenge of scheduling background tasks in Rust while keeping concurrency structured and safe. He proposes using the actor pattern, which organizes tasks to prevent issues like orphaned processes, and shows how it works with the Tide HTTP framework.
Rust in Production team interviewed Vegard Sandengen, a Rust engineer at KSAT (Kongsberg Satellite Services) sharing insights on how KSAT uses Rust to manage data from hundreds of satellites across its global network of ground stations. [audio]
Building the Rust compiler with GCC by Michał Kostrubiec outlines a three-stage process to ensure equivalence. He discusses three key bugs - recursive inlining, 128-bit switch issues, and segfaults due to misaligned pointers - and their workarounds, like demoting inlines and using if-ladders.
Carolyn Zech from Amazon Web Services brought her A-game to The Linux Foundation Open-Source Summit, delivering an engaging talk on verifying the Rust Standard Library. [video]
Ricardo Pallas wrote how he optimized a math expression parser written in Rust, starting with a baseline implementation that takes 43.1 seconds to process a 1.5GB file and achieving a final runtime of 0.98 seconds through multiple optimizations. Performance nerds will love this!
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.
Join for free and get 40% off when you upgrade. [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.
My daughter will be turning 6 months on Thursday, what an incredible journey fatherhood has been.
That's all for now, Rustaceans.
John & Elley.