The issues of using C are well understood and nobody likes it. Let's use a better language. C++ is not a better language, Rust is. Everybody loves Rust. Rust is good. Rust is hip. It will attract developers, it will improve code quality, it will improve performance, it will even improve your marriage. Rust is the future and the future is now.
As the block layer, let's show our commitment to the future by replacing one of our core parts, the the LEGACY (Bah! Yuck! Ugh!) qcow2 driver, by a shiny (Oooh! Aaah!) Rust driver. Much better. My VMs now run thrice as fast. Promise. Max Reitz (4): block: Add Rust interface block/qcow2-rust: Add qcow2-rust block driver block/qcow2-rust: Add partial write support block/qcow2-rust: Register block driver configure | 2 + Makefile | 6 +- Makefile.target | 2 +- block/Makefile.objs | 1 + block/qcow2-rust.c | 38 ++ block/rust/Cargo.toml | 10 + block/rust/src/interface/c_constants.rs | 8 + block/rust/src/interface/c_functions.rs | 37 + block/rust/src/interface/c_structs.rs | 587 ++++++++++++++++ block/rust/src/interface/mod.rs | 1012 ++++++++++++++++++++++++++++ block/rust/src/lib.rs | 12 + block/rust/src/qcow2/allocation.rs | 162 +++++ block/rust/src/qcow2/io.rs | 439 ++++++++++++ block/rust/src/qcow2/mod.rs | 347 ++++++++++ block/rust/src/qcow2/on_disk_structures.rs | 59 ++ block/rust/src/qcow2/refcount.rs | 96 +++ 16 files changed, 2816 insertions(+), 2 deletions(-) create mode 100644 block/qcow2-rust.c create mode 100644 block/rust/Cargo.toml create mode 100644 block/rust/src/interface/c_constants.rs create mode 100644 block/rust/src/interface/c_functions.rs create mode 100644 block/rust/src/interface/c_structs.rs create mode 100644 block/rust/src/interface/mod.rs create mode 100644 block/rust/src/lib.rs create mode 100644 block/rust/src/qcow2/allocation.rs create mode 100644 block/rust/src/qcow2/io.rs create mode 100644 block/rust/src/qcow2/mod.rs create mode 100644 block/rust/src/qcow2/on_disk_structures.rs create mode 100644 block/rust/src/qcow2/refcount.rs --- Yes, I'm late. I thought somebody else would do something but nobody did. It's still April, though, so I think I'm all good. Also, it's my birthday today so you're not allowed to complain! I could have waited until next year, but I'm afraid it would no longer have been funny by then because we might truly have Rust code in master then... -- 2.12.2