Rust Meets the Grid: Building openleadr-rs for Real-World Demand Response

Hugo
Co-owner & Business director
Rust Meets the Grid: Building openleadr-rs for Real-World Demand Response
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.

LF Energy Summit

The Linux Foundation Energy Summit Europe gathered “electric utilities, technology vendors, policymakers, regulators, global energy companies, researchers, and other industry stakeholders to learn about open source solutions for energy systems.”

This year’s event was an interesting one to attend, not only because we were there to present our own project, but also because I noticed a positive shift towards more awareness of the role that procurement processes can play in increasing the amount of open-source software used by influential parties like Distribution System Operators (DSOs), and reaping the benefits of doing so.

arila-hugo-marco-lf-energy-summit-2025 Left to right: Arila Barnes from Energy IOT Open Source; Hugo van de Pol from Tweede Golf and Trifecta Tech Foundation; Marco Möller from Pionix, the creators of EVerest, an EV charging stack currently integrating openleadr-rs

Our project openleadr-rs

For about a year now, we have been collaborating with ElaadNL on an open-source implementation of the OpenADR 3.0 standard. ADR stands for automated demand response, which is about enabling the demand for electricity to become responsive to the supply, optimizing the use of our physical grid infrastructure. For more info on demand response, OpenADR 3.0 and our implementation, please read my previous article.

The repository of our project, openleadr-rs, currently contains an OpenADR 3.0 client (VEN) library, a server (VTN) implementation, and a (WIP) CLI for easy testing and prototyping, all written in Rust. For the so-called Grid Aware Charging use case in The Netherlands, these building blocks allow a DSO to set up a demand response program in which it sends events to different Charge Point Operators (CPOs), receiving back reports detailing what their actual response to an event was.

The talk

Ton Smets, who co-leads technical innovation projects at ElaadNL, and I presented openleadr-rs in our talk ‘Rust Meets the Grid: Building openleadr-rs for Real-World Demand Response'.

We discussed:

  • the problem that openleadr-rs helps to solve
  • the features it supports
  • current adoption
  • the project’s Roadmap

openleadr-at-lf-energy-summit-2025-opening-slide Opening slide of our talk ‘Rust Meets the Grid: Building openleadr-rs for Real-World Demand Response'

Some of the highlights:

  • In the Netherlands, three DSOs and eight CPOs are using openleadr-rs for Grid Aware Charging.
  • ElaadNL is looking at broadening the scope of the project to also target Home Energy Management Systems (see RFP).
  • We’re looking ahead at OpenADR 3.1: A new branch will be added to the repo soon, and we will be implementing the subscriptions feature, which we’ll base on WebSockets after carefully weighing pros and cons with engineers from ElaadNL and people directly involved with the development of the OpenADR spec itself.
  • We restated our firm commitment to the project and asked the community for contributions, either by adding to the code (opening PRs) or by supporting the project financially through our non-profit Trifecta Tech Foundation.

The slides to our talk can be found here.

Learn more

If you’d like to learn more about openleadr-rs, the OpenADR 3.0 (or 3.1) standard, or why using Rust for critical grid-related software will contribute to the resilience of these systems and our grid, please join the OpenADR Conference in Arnhem, NL on March 2026; We’ll present a more technical variation of our LF Energy Summit talk, and there will be an Vehicle-to-Grid (V2G) demonstration that uses openleadr-rs.

If you’d like to contribute code, don’t hesitate to head to the repository and get started with one of the ‘good first issues’. In case you need any help, contact us via the openleadr channel on the LF Energy Slack.

If your organisation is willing to support the project financially, please reach out to Erik at Trifecta Tech Foundation.

We’re very grateful for all the support we’ve received so far in making openleadr-rs an example of modern, open-source digital infrastructure that all stakeholders can depend on.

Stay up-to-date

Stay up-to-date with our work and blog posts?

Related articles

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.

Over the past couple of months we've been hard at work on libbzip2-rs, a 100% Rust drop-in compatible implementation the bzip2 compression and decompression functionality.

For this project, we used c2rust for the initial translation from the C code to a Rust implementation. The generated Rust code has now been cleaned up and made safe where possible. This post describes our experiences using c2rust for this project.

February 25, 2025

zlib-rs is faster than C

We've released version 0.4.2 of zlib-rs, featuring a number of substantial performance improvements. We are now (to our knowledge) the fastest api-compatible zlib implementation for decompression, and beat the competition in the most important compression cases too.