Blog
Rust for systems, web, and embedded
Select topic
Select allIoTadvanced-UIsalgorithmsasyncautomotivecc++data-compressiondata-engineeringdevelopmentdevopseducationembeddedenergygointeropirmajavajavascriptkotlinluameet-the-teammeetupmemory-safetymicroservicesntpd-rsopen-dataopen-sourcependulumprivacypythonreactresearchrustsecuritysimdstatimestm32technologytestingtimingtoolstypescriptweb-developmentwhy-rust
On 19 May 2026, we (as organizing partner of RustWeek) ran the Industry Track at RustWeek for the third year in a row. This track focuses on Rust adoption, interaction and exchanging ideas. This year’s edition marked a noticeable change.
The RustWeek Hackathon is being co-sponsored by our client, the Dutch Electoral Council. The Abacus team (myself included) will be on-site with several good first issues and challenges, and we would love your input and proof-of-concept ideas!
May 4, 2026
Async Rust never left the MVP state
I've previously explained async bloat and some work-arounds for it, but would much prefer to solve the issue at the root, in the compiler. I've submitted a Project Goal, and am looking for help to fund the effort.
April 13, 2026
Debloat your async Rust
Async Rust is amazing, but far from flawless. In this blog, I'll walk you through the current struggles and possible solutions.
March 31, 2026
Fixing our own problems in the Rust compiler
In our data compression projects, we use Rust where C is traditionally used. During the work, we've hit limitations in Rust itself and in the surrounding tooling. Over the years, we've become increasingly comfortable with fixing these issues ourselves.
Maximilian Pohl (Tweede golf) and Stijn van Houwelingen (ElaadNL) presented openleadr-rs at FOSDEM 2026. You can now watch the recording of the talk.
January 15, 2026
How we built Remails: a European Mail Transfer Agent
Increasingly more organizations are reviewing their dependencies on foreign software and IT services from countries like the US. One broad necessity for many organizations is sending automated emails, possibly with high volume, be it for password resets, order confirmations, or routine notifications. Remails, a new European Mail Transfer Agent, can help you send these emails reliably without the need to rely on big tech. In this blog post, we tell the story of how we built Remails from a single binary proof-of-concept to a highly available, scalable cloud application.
January 14, 2026
Video: sudo-rs and beyond (Ubuntu Summit 25.10)
After sudo-rs was included in the 25.10 release of Ubuntu, Marc was invited to the Ubuntu Summit to talk about the design choices that shaped sudo-rs. You can now watch the recording of the talk.
December 16, 2025
Emulating avx-512 intrinsics in Miri
Recently we've started work on using more
avx512 features in zlib-rs. The avx512 family of target features provides SIMD intrinsics that use 512-bit vectors (double the size of avx2, which uses 256-bit vectors). These wider intrinsics can speed up certain algorithms dramatically.December 2, 2025
A quick intro to Merkle Tree Certificates
Many of us have heard about quantum computers and that they are a threat to our internet security and privacy. Nobody can tell, though, how long it will still take until quantum computers are actually powerful enough to be a serious threat. Even though the internet is often associated with rapid change, the fundamentals often take decades to change. Therefore, we must act now before it’s too late.
November 24, 2025
Running real-time Rust
By now, we all know Rust works pretty well on embedded. What's lesser known is how Rust handles real-time requirements. We occasionally get questions about this and so I took that as an opportunity to write about it!
October 22, 2025
Fixing rust-lang stdarch issues in LLVM
A couple of months ago I became a co-maintainer of
rust-lang/stdarch, which defines vendor-specific APIs that are used by the Rust standard library and Rust users writing explicit SIMD code.October 14, 2025
Talk about memory safety at ONE Conference
Earlier this month Marc and I had the opportunity to deliver a talk at ONE Conference in The Hague, The Netherlands, on a topic that’s near to our hearts: memory safety. Below we share some context, as well as our slides.
On Thursday 11 September 2025, I attended the LF Energy Summit in Aachen, Germany, where I gave the talk ‘Rust Meets the Grid: Building openleadr-rs for Real-World Demand Response’, together with Ton Smets from ElaadNL.
September 15, 2025
Embedded async debugging and inspect-embassy
As part of my internship at Tweede golf this summer I was tasked with improving the async debugging experience for embedded development. This work resulted in a prototype async debugger for embassy, a common async runtime for embedded systems.
August 18, 2025
Update on our advocacy for memory safety
We’ve been raising awareness of the importance of using memory-safe technology to build systems that are truly secure-by-design. We do this alongside our core business, which is to help companies to use Rust successfully. With the CRA standardization process well on its way, now is the perfect time to update you on what we’ve been doing and why.
Do general practitioners in the Netherlands know enough about diabetes to treat the growing number of patients? If you have read our blog before, that question might surprise you. But not all of our work is concerned with robust software for a healthy internet; we also value work that contributes to a healthy society. In this blog, we'll discuss the design process behind a gamified learning tool for healthcare professionals.
July 9, 2025
Reconstructing lost data from parity blocks
A few months ago, we were faced with the challenge of writing an over-the-air firmware update mechanism for the lossy LoRaWAN network; If a packet arrives, it is guaranteed to be correct, but not all packets will arrive. In this blog, we’ll walk you through the math behind our solution.
June 30, 2025
Exception handling in rustc_codegen_cranelift
Panics in Rust by default unwind to run Drop implementations for all values on the stack. Rust's stack unwinding is implemented using the same mechanism as C++ exceptions on most platforms. Recently the Cranelift code generator got support for "landingpad" style exceptions as detailed in the corresponding Cranelift RFC allowing me to add support for unwinding on panics to rustc_codegen_cranelift (cg_clif) for Unix systems.
In this article, I'll show you how exception handling works in cg_clif by walking you through several layers of the compilation process all the way to the runtime behavior.
The Dutch Electoral Council (known as the Kiesraad in Dutch) are developing Abacus: new open-source software for computing election results. We looked into how we can verify the correctness of the algorithm used for seat apportionment. In this blog post, we will discuss various ways of verifying software in Rust, from unit testing to model-based verification and fuzzing. In particular, property-based fuzzing turned out to be very useful for finding bugs in the seat apportionment algorithm.