This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance native addons for Node.js. It acts as a bridge between C++ and JavaScript, offering an object-oriented interface that simplifies the creation of compiled extensions while managing the complexities of the language boundary. The library distinguishes itself by providing type-safe abstractions for data marshalling and memory management, ensuring that native and script-side objects are tracked and reclaimed correctly. It includes mechanisms for coordinating asynchronous tasks bet
GitPython is a Python library that provides a programmatic interface for interacting with Git repositories. It functions as a version control API and a wrapper that allows for the execution of Git commands and the manipulation of repository commits, branches, and working trees. The project acts as a Git object manipulator, allowing users to inspect and modify internal data structures and blobs. It provides a structured layer for executing command line instructions with integrated error handling and data retrieval. The library covers a wide range of capabilities including repository initializ
This project is a comprehensive educational resource and guide for learning the Git version control system. It serves as a technical documentation source for a textbook that explains the fundamentals, advanced workflows, and internal architecture of Git. The project is structured as a multi-format e-book, with source files designed to be compiled into various digital publication formats, including HTML, PDF, EPUB, and Mobi. It utilizes a dedicated build pipeline to generate and validate these documents. The content covers a broad range of version control capabilities, including history manip
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
NodeGit is a native Node.js binding library that wraps the libgit2 C API, providing direct Git repository operations from JavaScript without shelling out to the Git command-line interface. It exposes Git operations such as cloning remote repositories, opening local repositories, reading file contents from specific commits, and walking through commit history, all through a Promise-based asynchronous API that prevents event loop starvation by offloading blocking operations to…
The main features of nodegit/nodegit are: Programmatic Git Automation Libraries, Git Native Bindings, Commit History Traversal, Commit File Content Readers, Event-Driven History Walkers, Local Repository Openers, Programmatic Repository Access Libraries, Remote Repository Cloning.
Open-source alternatives to nodegit/nodegit include: nodejs/node-addon-api — This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance… gitpython-developers/gitpython — GitPython is a Python library that provides a programmatic interface for interacting with Git repositories. It… progit/progit2 — This project is a comprehensive educational resource and guide for learning the Git version control system. It serves… src-d/go-git — This project is a native implementation of the Git version control system for Go applications. It provides a… facebook/sapling — Sapling is a scalable version control system designed to handle repositories with millions of files and commits,… libgit2/libgit2 — libgit2 is a portable, cross-platform C library that provides a programmatic interface for integrating Git version…