Furgit: Fast implementation of Git in pure Go
7 days ago
- #Performance
- #Git
- #Go
- Furgit is a fast Git library written in pure Go, currently in initial development with no tagged releases yet.
- The API is unstable and not recommended for production use; future releases may follow Semantic Versioning 2.0.0.
- Furgit originated from Villosa, a work-in-progress software development forge, and is intended as a library, not a CLI tool replacement.
- Designed for concurrent use across goroutines, enabling long-running applications like forges to maintain repository pools for rapid access.
- Focuses on performance, with benchmarks showing it matches upstream Git speed, outperforms libgit2 by 10x, and go-git by 1000x in certain operations.
- Supports SHA-256 by default with an option for SHA-1 via build tags; future research may explore supporting both algorithms in a single build.
- Requires Go 1.18 or later, with potential future drops of gccgo support if newer language features are needed.
- Licensed under GNU AGPLv3 with a proxy designation for future version acceptance; contributors must sign-off commits agreeing to the Developer Certificate of Origin.
- Hosted on Lindenii Forge with contribution guidelines involving unique branch naming and SSH key usage for pushes.
- Includes experimental Villosa instance using Furgit as backend, with mirrors available but direct contributions to Lindenii Forge recommended.