All Topics
All Topics
Technology
Technology
Design
Design
Programming
Programming
Science
Science
News
News
Gaming
Gaming
Entertainment
Entertainment
Business
Business
Finance
Finance
Sports
Sports
Health
Health
Food
Food
Travel
Travel
Art
Art
Music
Music
Books
Books
Education
Education
Politics
Politics
Personal
Personal
No algorithm. No AI slop. No ads. Just RSS. Pro-human. Indie writers. Real journalism. Open web. Chronological. Hand toasted.

Why Package Managers Should Avoid Using Git as a Database for Registries

By

birdculture

5mo ago· 9 min readenInsight

Summary

The article critiques the recurring pattern of package managers using Git repositories as databases for package registries, arguing that while Git offers attractive features like version history, pull request workflows, and free hosting, it fails to scale effectively as registries grow. The piece examines specific examples including Cargo's crates.io index, which started as a Git repository but encountered performance issues as the registry expanded, leading to slow clone operations and visible progress bars that frustrated users. The author argues that Git's design makes it unsuitable for large-scale package registry databases despite its initial appeal.

Key quotes

· 5 pulled
Using git as a database is a seductive idea. You get version history for free. Pull requests give you a review workflow. It's distributed by design. GitHub will host it for free. Everyone already knows how to use it.
Package managers keep falling for this. And it keeps not working out.
The crates.io index started as a git repository. Every Cargo client cloned it. This worked fine when the registry was small, but the index kept growing.
Users would see progress bars like 'Resolving deltas: 74.01%, (64415/95919)' hanging for ages, the visible symptom of Cargo's lib
Git repositories seem like an elegant solution for package registry data. Pull requests for governance, version history for free, distributed by design. But as registries grow, the cracks appear.
Snippet from the RSS feed
Git repositories seem like an elegant solution for package registry data. Pull requests for governance, version history for free, distributed by design. But as registries grow, the cracks appear.

You might also wanna read