Skip to content
This repository was archived by the owner on Aug 27, 2025. It is now read-only.

wavim/neogit

Repository files navigation

NeoGit Icon
NeoGit

Git Isometry for Node.js


Usage

Install this package in your project:

# via npm
npm add neogit

# or pnpm
pnpm add neogit

# or yarn
yarn add neogit

NeoGit is a pure TS library serving as a readonly, high-performance alternative to isomorphic-git, addressing several issues (i.e. incorrect merge-base algorithm).

IsoGit caches many things, including entire Git object packs (potentially massive). In contrast, NeoGit takes a minimal and deliberate approach to caching. While caching much less data, NeoGit still outperforms IsoGit by a factor of 2x in many scenarios (literally $[3, \infty)$ times faster in graph-based operations).

NeoGit is suitable for environments where native modules are not supported, such as VSCode extensions. It provides a lightweight yet performant alternative to NodeGit when cache invalidation is not a primary concern.

Developed for VSCode Git Branch, this library focuses on a core set of Git features and is not a full implementation of all Git capabilities (but could be done rather easily). Therefore API is not documented, plus I'm particularly lazy (it should be self-documenting).


Caching whole pack files...?

About

Git Isometry for Node.js

Topics

Resources

License

Stars

Watchers

Forks