Introduce Rust and announce that it will become mandatorty
Hi,
this small patch series introduces Rust into the core of Git. This patch series is designed as a test balloon, similar to how we introduced test balloons for C99 features in the past. The goal is threefold:
-
Give us some time to experiment with Rust and introduce proper build infrastructure.
-
Give distributors time to ease into the new toolchain requirements. Introducing Rust is impossible for some platforms and hard for others.
-
Announce that Git 3.0 will make Rust a mandatory part of our build infrastructure.
The test balloon itself is quite uninteresting: I've chosen to convert the "varint.c" subsystem, mostly because it is trivial and does not have any dependencies. But it does allow us to verify that C to Rust interop works as expected, and to play around with tooling.
For now, the series only contains support for Meson. If we agree to go down this route I'll also introduce support for Rust into our Makefiles at a later point in time.
Furthermore missing is additional tooling:
-
At least one CI job to verify that Rust builds and works as expected.
-
Tooling and CI jobs to ensure that we have consistent formatting via
cargo format
.
And probably lots more. As said, the entire goal is for us to have an easy playground that we can experiment on and develop the infrastructure incrementally without yet having to commit to anything.
Thanks!
Patrick
To: git@vger.kernel.org Cc: "Haelwenn (lanodan) Monnier" contact@hacktivis.me Cc: "brian m. carlson" sandals@crustytoothpaste.net Cc: Ben Knoble ben.knoble@gmail.com Cc: Christian Brabandt cb@256bit.org Cc: Collin Funk collin.funk1@gmail.com Cc: Eli Schwartz eschwartz@gentoo.org Cc: Elijah Newren newren@gmail.com Cc: Ezekiel Newren ezekielnewren@gmail.com Cc: Johannes Schindelin Johannes.Schindelin@gmx.de Cc: Junio C Hamano gitster@pobox.com Cc: Phillip Wood phillip.wood123@gmail.com Cc: Pierre-Emmanuel Patry pierre-emmanuel.patry@embecosm.com Cc: Sam James sam@gentoo.org Cc: Taylor Blau me@ttaylorr.com
--- b4-submit-tracking ---
This section is used internally by b4 prep for tracking purposes.
{ "series": { "revision": 1, "change-id": "20250904-b4-pks-rust-breaking-change-7167d9d3e37d", "prefixes": [ "RFC" ] } }