Build a Rust app that clones and fetches Git repositories without shelling out to the git command-line tool.
Read and write Git commits, references, and config files from within a Rust program.
Use as a Git backend in a Rust developer tool, similar to how Cargo uses it for package management.
Depend on only specific Git data model components like pack files or index files via modular crates.
Check the crate status document before building, not all Git operations are stable yet.
Gitoxide is a complete reimplementation of Git, the version control system used by most software projects worldwide, written entirely in Rust rather than C (which the original Git uses). The goal is to provide the same Git functionality with better correctness guarantees, faster performance, and cleaner programming interfaces for developers building tools on top of Git. The project is intended primarily as a library for other Rust programs to use, not as a drop-in replacement for the git command you run in your terminal. The main library, called gix, lets Rust developers add Git capabilities to their own applications without relying on calling the git command-line tool in the background. There are also two command-line tools for testing and development purposes, but the README explicitly notes these should not be relied on in scripts. In terms of what it can do today, gitoxide supports cloning repositories, fetching changes, checking file status, comparing file changes, reading and writing commits, browsing commit history, and reading and writing Git configuration files. Features still under development include pushing to remote repositories, merging commit histories, rebasing, and running commit hooks. The project tracks which features are complete versus planned in a separate status document. The codebase is split into dozens of smaller packages, each responsible for one piece of the Git data model: objects, references, configuration, index files, pack files, and so on. This modular structure means Rust developers can depend on just the parts they need. Gitoxide is open-source and under active development. It has been used as the Git backend in some Cargo (the Rust package manager) workflows. New users should check the project's crate status document to understand which operations are stable enough to build on before starting.
← gitoxidelabs on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.