Hi everyone!
I’ve just released the first version (0.1) of RSD, which is a
proof-of-concept to rewrite the qemu-storage-daemon (QSD) and thus the
qemu block layer in Rust:
https://gitlab.com/hreitz/rsd
https://gitlab.com/hreitz/rsd/-/releases/v0.1
We’ve been talking for quite a long time about adding Rust into qemu and
the qemu block layer, and usually ended it with “Could be nice, we just
need someone to start.” After we’ve had discussion last year about
maybe adding C++ for language-supported coroutines, I thought if the
time isn’t now, it’s never.
In the process, I’ve gathered some insights into obstacles and benefits
that Rust could bring us, which I’ve summed up in two blog posts:
Part 1 (Overview): https://czenczek.de/blog/rsd-overview.html
Part 2 (Performance): https://czenczek.de/blog/rsd-performance.html
The bottom line so far is that Rust could bring us valuable benefits,
but likely only if we rewrote everything. A middle ground is possible,
by keeping RSD focused on a specific subset of functionality, the one
that is most valuable for it. In any case, this (v0.1) is as far as is
reasonable to go with RSD as an experiment – any further work we’d need
to do in earnest and define what exactly we actually want. And that’s
an important part of what this announcement is for, to see whether
anyone has this interest!
Hanna