Gogress
A small, from-scratch SQL database written in Go, built around write-ahead logging for crash recovery — an educational project, not a production database.
🔗 Visit GogressDescription
Understanding how a database actually keeps your data safe when the power cuts out is easier to learn by building one than by reading about it. Gogress is a small, from-scratch SQL database written in Go, built around a write-ahead log so it can recover data after a crash — a learning-focused project rather than a production-ready system.
It supports table creation, key-value put/get operations, and experimental SQL with SELECT and WHERE filtering, plus a command-line interface (gogress-cli). Durability comes from write-ahead logging with index rebuilding from logs after a crash. It's open-source with no license currently specified, maintained by a single developer, with a modest 2 GitHub stars and decent test coverage.
💬 Our review
The short version: Gogress is a well-structured educational project for understanding database internals (WAL, crash recovery) in Go — not something to run in production, but a solid read or starting point if you're building your own storage engine.
Compared to production embedded databases like SQLite or BoltDB, Gogress is intentionally minimal — its value is in the clarity of its WAL and crash-recovery implementation, not in feature completeness or battle-tested reliability. If you need an actual embedded database for an application, SQLite is the safe, mature choice; if you're studying how databases work or want a compact reference implementation to fork, Gogress is worth a look specifically for that.
💰 Pricing
📊 Global score
🤖 AI-enriched data
Gratuit, code source ouvert sur GitHub, aucune licence formelle indiquée.
Pros
Implémentation claire et lisible du write-ahead logging
Récupération après crash via reconstruction d'index depuis les logs
Bonne couverture de tests pour un projet de cette taille
Supporte à la fois clé-valeur et requêtes SQL basiques
Cons
Projet très restreint (2 stars GitHub), pas pensé pour la production
Aucune licence formelle spécifiée
Support SQL marqué expérimental et limité
Documentation limitée au README
