Posted on

Welcome to the latest edition of Rust Trends, Edition #40! In this issue, we dive into diverse topics from exploring the nuances of Rust's match operator to adventurous projects like building a drone and significant developments like Thunderbird's new Exchange support.

Join us as we traverse these technical terrains, offering insights, challenges, and community-driven enhancements that showcase the versatility and power of Rust.

Engage with our articles to elevate your programming skills and connect with the Rust community's innovative spirit.

Explore the Power of Rust's Match Operator with Community Insights

Unpacking Rust's Match Operator with Community Insights In our latest blog post, Unpacking Rust's Match Operator with Community Insights we delve into the practical applications and community-driven enhancements of Rust's versatile match operator. Inspired by real-world code discussions on platforms like LinkedIn, this article breaks down a simple Rust code snippet and incorporates valuable feedback from the Rust community. Whether you're looking to refine your understanding of control flow in Rust or searching for tips to write cleaner code, this post is packed with expert advice and coding improvements.

Dive into the article here and join the conversation to elevate your Rust programming skills!

Building a Drone with Rust: A Public Embedded Project Journey

Embedded project: Drone In a recent call to our community for embedded programming ideas using Rust, your enthusiasm and innovative suggestions stood out. After much deliberation, I'm excited to announce the project we'll be tackling together: **building a drone**. More precisely a Flight Controller. This journey won't just be a personal challenge—I plan to build this project in public, sharing each step of the process to enhance our community's learning and engagement.

Choosing the Right Framework

The first step in this adventure was to decide on the programming environment: RTOS, bare metal, or async programming. While Tock OS, RTic, and Hubris with its accompanying debugger Humility) from Oxide Computer were strong contenders, each offering unique strengths, I decided to embark on a path less traveled within our context.

Given my background with the RTOS Zephyr, which is primarily written in C, the allure of exploring new territories was irresistible. I've chosen to work with Embassy, a framework that supports async programming. This choice is particularly exciting as it bridges the gap for those transitioning from high level Web development or Systems Programming to Embedded Development in Rust. The async model in Embassy will help us manage multiple tasks efficiently, which is crucial for controlling a drone's various functions concurrently.

Why Not Bare Metal?

While bare metal programming offers direct hardware control and efficiency, it lacks the built-in concept of task prioritization and asynchronous operations—features that are critical for a drone's operational requirements. The complexity of managing a drone's multiple sensors, motors, and safety checks makes bare metal a less suitable option for this project.

What’s Next?

I am thrilled to start coding, compiling, and flashing the drone. Stay tuned for regular updates, insights, and tutorials in the coming editions of Rust Trends. Together, we'll navigate the challenges and celebrate the milestones of this exciting project.

Let's soar to new heights with Rust!

Adventures In Rust: Bringing Exchange Support To Thunderbird

Thunderbird Rust In the latest post on the Thunderbird blog, the team discusses their adventures in implementing Exchange support using Rust, a journey that marks a significant milestone for Thunderbird. For over two decades, Thunderbird had not introduced support for a new mail protocol, making this development particularly notable. The choice of Rust was driven by several advantages such as memory safety, performance, modularity, and its vibrant ecosystem. Notably, Thunderbird benefits from its integration with Firefox's codebase and infrastructure, which already supports Rust, easing some aspects of development despite the challenges posed by legacy code and architectural hurdles.

This endeavor is part of Thunderbird's broader effort to modernize its architecture, addressing technical debts and enhancing maintainability for future expansions. The implementation focuses on interfacing with Microsoft's Exchange Web Services (EWS), utilizing Rust's capabilities to manage complex features and ensure robust security practices. Despite initial challenges with the build system and integrating Rust code, the team has successfully navigated these issues, setting a foundation for further development and integration of Rust within Thunderbird's architecture.

For more details on this transformative journey and the technical insights behind it, you can read the full blog post here.

We are thrilled to have you as part of our growing community of Rust enthusiasts! If you found value in this newsletter, don't keep it to yourself — share it with your network and let's grow the Rust community together.

👉 Take Action Now:

  • Share: Forward this email to share this newsletter with your colleagues and friends.

  • Engage: Have thoughts or questions? Reply to this email.

  • Subscribe: Not a subscriber yet? Click here to never miss an update from Rust Trends.

Cheers, Bob Peters