Git 2.55-rc0 Marks Rust’s Arrival as Default, Signals End of C-Only Era

Git 2.55-rc0 enables Rust by default in its build systems, setting the stage for mandatory adoption in version 3.0. The release also brings config-driven hooks that can run in parallel and targeted fixes for submodule handling. These updates reflect the project's careful modernization strategy while preserving compatibility.
Git 2.55-rc0 Marks Rust’s Arrival as Default, Signals End of C-Only Era
Written by Lucas Greene

Developers who rely on Git for everything from Linux kernel patches to enterprise codebases woke up Thursday to a new candidate release. Git 2.55-rc0 arrived with a quiet but profound shift. Rust support now turns on by default in both the traditional Makefile and the newer Meson build systems.

That single change carries years of planning. The project outlined its Rust roadmap years ago. In version 2.52 the infrastructure appeared but stayed off by default. Now, with 2.55, builds will fail if Rust and Cargo cannot be found on the host. A flag still exists to disable it. Yet the direction stands clear. Git 3.0 will make Rust mandatory.

Git’s own BreakingChanges document spells out the timeline in plain terms. “In Git 2.55, both build systems will default-enable support for Rust. Consequently, builds will break by default if Rust is not available on the build host.” The project also plans a long-term support release before the mandatory switch. That LTS version will receive bug fixes for at least four cycles and security updates for six. Distributors may inherit it if needed.

Why Rust now? Memory safety sits at the top of the list. Parts of Git that handle object parsing, diffing, and index operations carry decades of careful but complex C code. Rust offers guarantees that eliminate entire classes of bugs. Early Rust components already ship in previous releases. The 2.55 step simply stops treating them as optional experiments.

But the release brings more than language adoption. Parallel hook execution arrives as an opt-in feature. Collabora engineer Adrian Ratiu contributed key patches that let administrators define hooks in the Git configuration file itself. No more scattered executable files in the .git/hooks directory with limited visibility.

Consider a typical CI setup. One hook runs a linter. Another checks for memory leaks. Previously these ran in series. A slow linter delayed the leak checker. The new parallel option changes that. Ratiu’s series, merged into the Git tree and expected in 2.55, allows hooks to fire concurrently when configured. The Collabora blog post detailing the work shows concrete examples of config stanzas that define named hooks and control their execution model.

Submodule handling also sees fixes for path collision cases that plagued some users. These changes reduce surprising behavior when submodule paths overlap in certain ways. And the team cleaned up signal handling on obscure platforms such as NonStop UNIX. Small. Yet the sort of detail that keeps Git running everywhere from mainframes to developer laptops.

Phoronix first reported the rc0 drop hours after the tag appeared. “Git 2.55-rc0 is out today as the first tagged test version of the forthcoming Git 2.55 distributed version control system,” wrote Michael Larabel. “Most notable with Git 2.55 is that Rust support is being enabled by default.” The story quickly spread across Linux forums and X, where the Phoronix account shared the link to thousands of followers.

The Rust transition has sparked measured discussion. Some maintainers worry about build complexity for embedded or minimal environments. Others point to Cargo’s own dependencies and the need for a stable Rust toolchain. The project acknowledges these concerns. It will evaluate downstream impact before removing the escape hatch in 3.0. That measured pace reflects Git’s conservative culture. The tool underpins too much critical infrastructure to move fast and break things.

Performance work continues in the background. Earlier releases brought index improvements, better delta compression, and faster operations on large repositories. The Rust pieces so far focus on safety rather than raw speed. Yet the language’s zero-cost abstractions and fearless concurrency hint at future gains. Watch for more Rust code in areas like the merge machinery or packfile handling.

Hook configuration in Git config files also improves visibility and portability. Teams can now version-control their hook definitions alongside project settings. No more wondering whether a colleague’s local hook matches the team’s policy. And parallel execution should cut wait times in heavy pre-commit or pre-push scenarios. A five-second linter no longer blocks a thirty-second security scan.

These changes arrive at a moment when Git faces competition from newer tools. Yet its network effects remain unmatched. Every major platform ships it. Every IDE integrates it. The decision to bring in Rust shows the maintainers’ willingness to modernize the implementation while preserving the user experience and backward compatibility that made Git dominant.

Testing of 2.55-rc0 should begin in earnest now. The release cycle typically spans several release candidates before final. Distributors will watch closely. Package builders on systems without Rust installed by default may need to adjust. Linux distributions that already bundle Rust toolchains will feel little pain.

And the long-term support plan offers a safety net. By designating one final C-heavy release as LTS, the project gives enterprises and distro maintainers time to adapt their build environments. That handoff process will be discussed later. For now the focus stays on shaking out bugs in the rc series.

Git’s maintainers have threaded a careful needle. They introduce a new systems language without forcing immediate upheaval. They add practical workflow features that address real pain points for developers and DevOps teams. They keep the project’s legendary stability intact.

The result feels less like a flashy rewrite and more like steady, confident evolution. Rust becomes the new normal. Hooks gain flexibility. Edge cases get cleaned up. The world’s most widely used version control system takes another step toward its next decade.

Subscribe for Updates

DevNews Newsletter

The DevNews Email Newsletter is essential for software developers, web developers, programmers, and tech decision-makers. Perfect for professionals driving innovation and building the future of tech.

By signing up for our newsletter you agree to receive content related to ientry.com / webpronews.com and our affiliate partners. For additional information refer to our terms of service.

Notice an error?

Help us improve our content by reporting any issues you find.

Get the WebProNews newsletter delivered to your inbox

Get the free daily newsletter read by decision makers

Subscribe
Advertise with Us

Ready to get started?

Get our media kit

Advertise with Us