Rust

Rust in Mercurial: The wider benefits

<p>From its timid introduction to the <a href="https://mercurial-scm.org">Mercurial Version Control System</a> back in 2017 to its more than 50k lines of code today, Rust has enabled a wide range of improvements, some of which we wager would have been impossible if not for Rust.</p> <p>This talk shows how we reach far beyond the obvious point of "Rust runs faster than Python". It discusses aspects like maintainability, dependency management, API re-designs, opportunities for more advanced algorithms, on disk data-structures, safe parallelism, etc.</p> <p>We present our rare perspective of working on a 20 year-old codebase with half-a-million lines of Python code, in a software niche with quite extreme goals. Mercurial aims to provide instant-feeling commands with short lived processes for a local database of tens of millions of revisions for millions of files with fully distributed replication.</p>

Weitere Infos

Live Stream https://live.fosdem.org/watch/ub2252a
Format devroom
Sprache Englisch

Weitere Sessions

01.02.26
Rust
Fedor Smirnov
UB2.252A (Lameere)
<p>In this talk, we will share the insights we gained while building Myrmic, our open-source Rust middleware for distributed systems, with a particular focus on our microcontroller firmware that enables running WebAssembly on resource-constrained targets such as Nordic and ESP devices. Our entire stack is Rust-based—from Embassy firmware and the embedded HAL to the Wasm toolchain and the runtimes themselves. We will outline the requirements that running Wasm in <code>no_std</code> environments ...
01.02.26
Rust
Marcel Ziswiler
UB2.252A (Lameere)
<p>With the Rust embedded-hal v1.0 now released almost two years ago, Rust is really ready for bare metal embedded deployments. This talk will look at cheap RISC-V MCUs like the CH32V003 featuring (RPi Pico or Teensy style for less than EUR 1.30) and show you hands-on how you may develop your embedded system using bare metal Rust. From zero to main, using probe-rs for flashing and debugging, IDE integration thereof and some tricks like successfully using no-std for the tiniest footprint ...
01.02.26
Rust
Federico Bassini
UB2.252A (Lameere)
<p>Tired of the endless “search, copy, paste, test” routine, last year’s FOSDEM helped me break out of that loop thanks to two unexpected sparks: Rust and retrogaming. In this talk, I’ll share how discovering Rust and the Game Boy homebrew scene rekindled my passion for creating software bare metal, bringing back the artistic and playful side of programming. We’ll explore the current state of the Rust ecosystem for GB, GBC, and GBA development — from compilers and minimalist engines ...
01.02.26
Rust
Jovan Gerodetti
UB2.252A (Lameere)
<p><a href="https://github.com/godotengine/godot">Godot 4</a>’s built-in async support for GDScript has long been a powerful feature - but what about Rust? In February 2025, I implemented async support for Godot’s Rust bindings (<a href="https://github.com/godot-rust/gdext"><code>godot-rust</code></a>), enabling Rust developers to write async code without introducing external runtimes. </p> <p>In this talk, I’ll walk you through the architecture: how we adapted Godot’s async execution ...
01.02.26
Rust
Alex Snaps
UB2.252A (Lameere)
<p>The Common Expression Language (<a href="https://cel.dev">CEL</a>) is an expression language that’s fast, portable, and safe to execute in performance-critical applications. The <a href="https://github.com/cel-rust/cel-rust/">CEL crate</a> provides a parser and interpreter for the language that emerged from Google, but never provided an implementation for Rust. Given its traits, CEL is the perfect match for any Rust project that requires some sort of expression evaluation. We'll cover why ...
01.02.26
Rust
Terts Diepraam
UB2.252A (Lameere)
<p>Roto is a statically-typed and compiled scripting language for Rust applications that integrates very tightly with Rust. To achieve that integration, it needs to interface directly with Rust types and functions. Implementing that boundary turned out to be quite tricky! We had many obstacles to overcome, such as Rust providing very few mechanisms for reflection and not providing a stable ABI by default. This talk will explain how Rust-Roto boundary works and the tricks we have to pull along ...
01.02.26
Rust
Alexey Milovidov
UB2.252A (Lameere)
<p>Full rewrite from C++ to Rust or gradual integration with Rust libraries? For a large C++ codebase, only the latter works, but even then, there are many complications and rough edges. In my presentation, I will describe our experience integrating Rust and C++ code and some weird and unusual problems we had to overcome.</p>