Skip to content

Latest commit

History

288 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

tsgit

CInpmLicense: MIT

Lightning-fast git, pure TypeScript, everywhere.

Pure TypeScript git — Node.js, browser, Deno, Bun, and Cloudflare Workers. Zero native deps. Zero WASM. Stable v1, semver-tracked — see BACKLOG for the roadmap.

Install

npm install @scolladon/tsgit

60-second quickstart

import{openRepository}from'@scolladon/tsgit';constrepo=awaitopenRepository({cwd: process.cwd()});constcommits=awaitrepo.log({limit: 10});const{ clean, branch, changes, untracked }=awaitrepo.status();awaitrepo.dispose();
RuntimeImport
Node.js 22+@scolladon/tsgit
Browser (OPFS)@scolladon/tsgit/auto/browser
Browser (no build)https://unpkg.com/@scolladon/tsgit@3/dist/browser/tsgit.js
In-memory (tests)@scolladon/tsgit/auto/memory
Denonpm:@scolladon/tsgit
Bun@scolladon/tsgit
Cloudflare Workers@scolladon/tsgit/auto/memory

Full quickstart per runtime · recipes — partial clone, sparse checkout, hooks, …

Capabilities

  • Zero runtime dependencies — no transitive surface
  • Pure TypeScript — no native code, no WASM, no git binary required
  • Cross-runtime — Node 22+ · Deno · Bun · Cloudflare Workers · Browser (OPFS) · in-memory
  • Tree-shakeable — sideEffects: false; each primitive is an independent entry
  • CJS + ESM dual-publish, verified by arethetypeswrong
  • 46 Tier-1 commands · 20+ AsyncIterable primitives · operator toolkit (pipe, filter, map, …)
  • Snapshot+join surface — query tree / index / workdir / stash through one lazy, atomic-iteration pipeline (primer)
  • Type-safe — branded ObjectId/RefName/FilePath, discriminated-union errors, no any
  • AbortSignal lifetime — repo.dispose() cancels in-flight work

Commands · primitives · snapshots · errors

Performance

tsgit is benchmarked nightly in CI. Current numbers, methodology, and trade-offs live in the performance analysis.

Documentation

  • 📖 Get started — Node, browser, memory, migration from isomorphic-git
  • 🛠️ Use it — commands, primitives, recipes, errors
  • 🧠 Understand it — architecture, design decisions, performance, security

Contribute

See CONTRIBUTING.md.

License

MIT

About

Pure TypeScript git library — Node + browser, zero deps.

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages