Back to browse
GitHub Repository

An embedded database for Go, compatible with NeDB.

23 starsGo

GEDB – A pure-Go embedded database

by ReturnErr·Feb 16, 2026·9 points·3 comments

AI Analysis

●●SolidShip ItNiche Gem

NeDB compatibility in pure Go; a nicer SQLite.js for terminal apps.

Strengths
  • 100% test coverage and full context support show maturity rare in new projects
  • MongoDB-style query API with indexing (TTL, compound, unique) feels complete
  • Pure-Go with zero external dependencies means zero friction for embedded use
Weaknesses
  • Only 19 stars and 0 forks suggests early adoption, unproven in production
  • Lack of performance benchmarks vs NeDB, SQLite, or BoltDB makes viability unclear
Target Audience

Go developers building CLI tools, TUIs, desktop apps, or small services needing local data persistence.

Similar To

NeDB · BoltDB · SQLite

Post Description

Hello HN!

These last few months I've been working on my first open source project: an embedded database written in pure-go. That took me some months, as I had to learn how to deal with such large packages. Until then, all packages I had made were quite small an did not require much. I usually did not have to worry about things like allocation optimization and instance pools until This project.

It started when I wanted to make a port of a tool to a TUI environment. I'm actually used to working with TUIs in golang, so that was my language of choice. The tool I wanted to port is written in TypeScript and uses NeDB (written in JavaScript) as database. Since I feel more comfortable working with compiled languages, I decided to create my own database, making sure it was compatible with NeDB, and that's what I did for the last few months.

And that's how GEDB was created. It's a mongodb-like embedded database, written in pure-go. It supports a subset of useful querying options of MongoDB (keywords like $lt, $exists, $in, $where, etc.). By default, it uses a in-memory-only storage, but can easily initialized with a data file.

Everything in my package can be dependency injected, as everything is controlled interfaces. Serialization, querying syntax, document structure, indexing and more, all can be replaced by implementing an interface.

I've also been considering adopting a new document model, by creating a binary type (like BSON) to reduce drastically the cost of creating, maintaining and copying documents (they currently are map[string]any).

The project is currently in an early stage, version 0.1.0, so I'm okay with making changes to the API for now, until I'm ready to release version 1.x.x

I would be really glad if you guys could check it out and give some feedback. An issue, suggestion or a star are very welcome.

My repository can be found on my github: https://github.com/vinicius-lino-figueiredo/gedb

Similar Projects

AI/ML●●Solid

PardusDB – SQLite-like vector database in Rust

Using a single-file .pardus format with CREATE/INSERT/SELECT + SIMILARITY queries gives a very familiar developer UX for embedding storage. The combination of graph-based ANN, full transactions, thread-safety, and zero external dependencies is an uncommon and useful engineering combo for local-first AI work; it would win more attention with benchmark comparisons and richer ecosystem integrations (connectors/clients).

Niche GemWizardry
JasonHEIN
203mo ago