gitoxide
Pure Rust implementation of Git, offered as the gix library crate plus gix and ein command-line binaries for testing the API and running workflow tools.
gitoxide is an implementation of Git written in Rust. It is used in two ways: as a library, through the gix crate, which is added as a Cargo dependency and acts as the entry point to a set of lower-level crates (gix-config, gix-ref, gix-odb, gix-pack, gix-index and others); and as command-line tools. The CLI side consists of the gix binary, which is meant for exercising the API against real repositories, and the ein binary, which holds workflow-enhancing tools. The README states that both binaries may remain unstable and should not be relied on in scripts.
Implemented functionality includes clone, fetch, status, blob and tree diff, commit, commit-graph traversal, worktree checkout and worktree streaming, and reading and writing of objects, refs, .git/index and git configuration. It also handles pathspecs, revspecs, .gitignore and .gitattributes. Blame is available at the plumbing level. Merge works for blobs and trees but not yet for commits, and push, rebase and reset are not implemented. Stress-testing commands cover verifying huge packs, exploding a pack to disk, and generating and verifying large commit graphs.
The main audience is Rust developers who want Git functionality in their applications, including those migrating from git2 (the docs support searching for git2 equivalents). Crates carry stability tiers: gix-lock and gix-tempfile are production grade, several others are stabilization candidates, and most are in initial development. A crate-status document tracks implemented and planned features. Binaries are available for Linux, macOS and Windows.
Installation
# via Homebrew
brew install gitoxide
# via Pacman (Arch Linux)
pacman -S gitoxide
# via Cargo binstall
cargo binstall gitoxide
Alternatives & related tools
onefetch
Command-line tool that displays Git repository information and code statistics in terminal
gitu
Terminal user interface for Git inspired by Magit, providing visual staging, branching, and repository management
serie
Terminal UI for git commit graphs using image protocols to render rich visualizations in supported terminals
gitui
Terminal-based Git GUI for staging, committing, branching, and repository management with keyboard-only control
lazyjj
Terminal UI for Jujutsu version control system, providing interactive log browsing, file management, and bookmark operations
add a badge to your README
Maintain gitoxide? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/tools/gitoxide?utm_source=badge)<a href="https://www.trmn.sh/tools/gitoxide?utm_source=badge"><img src="https://www.trmn.sh/badge/gitoxide.svg" alt="Featured on trmn" height="20"></a>