libgit2 is a portable, cross-platform C library that provides a programmatic interface for integrating Git version control directly into applications. It serves as a linkable implementation of Git internals, allowing developers to manage repositories and manipulate version control data without requiring a system installation of the Git command line tool.
The main features of libgit2/libgit2 are: Embedded Version Control APIs, C Libraries, Content-Addressable Storage, Git Object Backends, Direct Object Manipulation, Commit History Analysis, Commit History Traversal, Index Staging Operations.
Open-source alternatives to libgit2/libgit2 include: isomorphic-git/isomorphic-git — Isomorphic-git is a full implementation of the Git version control system written in JavaScript. It serves as a… go-git/go-git — This project is a pure Go implementation of the Git version control system, providing a library for integrating… src-d/go-git — This project is a native implementation of the Git version control system for Go applications. It provides a… creationix/js-git — This library provides a modular implementation of the Git version control system, designed to function entirely within… progit/progit2 — This project is a comprehensive educational resource and guide for learning the Git version control system. It serves… docopt/docopt.c — C-code generator for docopt language.
Isomorphic-git is a full implementation of the Git version control system written in JavaScript. It serves as a programmatic client library that allows developers to perform core version control operations without requiring a system-level Git binary installation. The library is designed as an isomorphic codebase, meaning it runs identically across both client-side web browser environments and server-side Node.js runtimes. It achieves this by using a filesystem-agnostic storage model and a pure JavaScript implementation of the Git core logic and the Smart HTTP protocol. The project covers a c
This project is a pure Go implementation of the Git version control system, providing a library for integrating versioning and history analysis into applications. It functions as a complete repository manager and object store that does not require external binary dependencies. The implementation utilizes interface-based storage, allowing repositories to be managed on disk or entirely in memory. It supports a transactional storage model to ensure atomic operations and implements a content-addressable storage system using delta-compression packfiles. The library covers a broad range of version
This project is a native implementation of the Git version control system for Go applications. It provides a programmable API and a low-level plumbing toolset that allows developers to manage repositories, manipulate object graphs, and perform version control operations without requiring external system binaries or C bindings. The library is distinguished by its flexible storage and network layers, featuring a virtual file system that enables in-memory repository management to bypass disk I/O. It supports pluggable network transports and interface-based storage backends, allowing for custom p
This library provides a modular implementation of the Git version control system, designed to function entirely within JavaScript environments. It enables the management of repository objects, including commits, trees, and blobs, directly within application logic without requiring external command-line tools or system-level dependencies. The system is built upon a content-addressable storage engine that uses cryptographic hashes to ensure data integrity and eliminate redundant storage. By utilizing a pluggable storage interface, the library allows repository data to be persisted across divers