Meilisearch 1.15: Your Search Just Got Smarter (Seriously)
Today’s Issue: Is Rust Faster Than C?, GNOME moving to Rust, and Pattern Modeling Overlapping Variant Data in Rust
Hello Rustaceans
As we approach Juneteenth on Thursday, we wish you a meaningful commemoration. Welcome to another edition of the Rust Bytes newsletter.
In this issue, we’ll discuss the latest release of Meilisearch, present a Rust tip, spotlight an amazing Rust project, and share some incredible links of the week.
Here’s issue 71 for you!
THE MAIN NEWS
Ever hit that "search" button on a website, only to have to explain to a client why searching for "123 Main St" pulls up "124 Elm Ave"? We've all been there, scratching our heads, wondering if our search engine is secretly a comedian.
Well, good news for your sanity (and your users' patience). Meilisearch has released version 1.15, and it’s packing some genuinely useful punches.
Since we first wrote about them in our 17th issue, they've made significant strides, consistently adding impressive features to their roadmap. Now, in our 71st issue, it seems they've not only flipped the script on innovation but also on our issue numbers!
First off, they’ve finally given us the power to disable typo tolerance for numbers. That's right, Rustaceans! Searching for 2024 will now only return 2024, not some distant cousin like 2025 or 2004.
This is huge for anyone dealing with postal codes, phone numbers, or any data where a single digit typo is a one-way ticket to frustrationville. Plus, it can apparently speed up indexing for those number-heavy datasets, which is always a win in our book.
But wait, there’s more. They have also introduced lexicographic string filters. This means you can now use comparison operators (<, <=, >, >=, TO) on strings, just like you would with numbers.
Think filtering by dates in a human-readable format like release_date < "2023-07-17". No more wrestling with timestamps when you're just trying to find all the records before that fateful day you accidentally git push --force.
And for our pals dealing with the vast and wonderful world of Chinese text, Meilisearch has significantly improved its support, offering more precise segmentation. Just a heads-up: if your dataset speaks fluent Mandarin, you’ll need to reindex for this to kick in.
So, if you’re looking to level up your search game without getting bogged down in the weeds, Meilisearch 1.15 seems like a solid pick. It's like your favorite coffee shop, but instead of extra espresso, they're giving you extra precision and speed.
All in all, this release seems like a thoughtful evolution, focusing on developer pain points. It’s like getting that perfect commit: clean, effective, and makes everything better.
RUST TIP 🦀
Last week, we challenged you to find and return peaks and valleys in an array of integers in a sorted order.
Thanks to Amaso, oldMonk0003, and Dmitry who shared their solution to the challenge. You rock!
Also huge thanks to fistons for spotting a false positive test on one of the assert functions. We will be more keen next time.
Let's move on to this week’s Rust tip.
include_str!
Macro
include_str! is a macro that reads the content of a file at compile time, and embeds it as a &'static str
.
When it's useful
For bundling static assets (like configuration files, templates, or small images) directly into your executable.
This avoids runtime file I/O and simplifies deployment, as you don't need to ship separate asset files.
You can play around with the code on Rust Playground.
PROJECT SPOTLIGHT 💡
Rama (ラマ)
Rama is a modular service framework written in Rust, and designed to give developers precise control over network packet handling.
Rama allows you to manipulate packets, protocols, and sockets directly, bridging the gap between simplicity and the need for advanced, programmable network behavior.
Built with an async-first approach using Tokio, it offers a solid base for building custom proxies, web services, and HTTP clients.
Network programming often demands precise control over packet movement and transformation, especially for tasks like security analysis, traffic interception, or building high-performance proxies.
Some features that make Rama awesome:
Modular Packet Pipelines - Rama enables you to construct flexible, reusable pipelines for processing network packets, adaptable to diverse use cases like proxying or traffic analysis.
Advanced Socket Manipulation - Support for features like transparent proxying, Unix domain sockets, and the PROXY protocol allows for sophisticated network handling.
User Agent and Fingerprinting Support - Rama includes emulation for HTTP and TLS user agents, alongside fingerprinting tools like Ja3, Ja4, and Peetprint, aiding in tasks like distortion proxies.
Rama also has Telemetry and metrics for integrated tracing, OpenTelemetry, and HTTP/transport metrics to help you monitor and optimize performance effectively.
A bonus feature of Rama is its availability as an open-source project on GitHub at https://github.com/plabayo/rama.
AWESOME LINKS OF THE WEEK 🔗
Eric Huss from the Rust Leadership Council released “June 2025 Leadership Council Update”.
Ivan wrote “When is a Rust function "unsafe"?”, debating Rust's `unsafe` keyword. He discusses conflicting definitions of `unsafe` in Rust's documentation, proposing categorizing unsafe functions by context, and suggests a system to annotate and restrict their usage to improve safety and clarity.
Steve Klabnik attempted to answer the question we have all been asking, “Is Rust faster than C?”
“Why doesn't Rust care more about compiler performance?” by Jakub Beránek addresses the common complaint about Rust's slow compilation times, explaining that the Rust Project actively works on improving compiler performance, but faces challenges due to technical complexities, trade-offs, and competing priorities.
Microsoft is rewriting their cryptographic library, SymCrypt, in Rust to enhance memory safety and incorporate formal verification, starting with the ML-KEM algorithm.
Dillon McMahon wrote “Patterns for Modeling Overlapping Variant Data in Rust” examining six Rust data modeling approaches, analyzing trade-offs in type safety, code duplication, API clarity, and flexibility to changes.
Yoshua Wuyts’s article, Async Traits Can Be Directly Backed By Manual Future Impls, explains that async functions in traits can be directly backed by manual Future implementations, eliminating intermediate `.await` calls and enabling optimized performance without sacrificing convenience.
The GNOME project is transitioning its image processing library, GdkPixbuf, to Rust to enhance safety and reliability.
Conviva’s Rustaceans shared “How An Atomic Counter Stalled A Pipeline”. Highlighting a sudden performance issue in their streaming analytics platform, which they resolved by switching to an ArcSwap-based solution that minimized cache contention for read-heavy operations.
Raph Levien from Linebender wrote “A plan for SIMD” outlining a plan to enhance SIMD in Rust focusing on creating an ergonomic, safe, and high-performance SIMD crate with lightweight dependencies, fine-grained CPU support, and code generation to improve compile times.
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've been tending to my flowers. Sadly, one of them died, but the other is thriving.
That's all for now, Rustaceans.
John & Elley.