Bbold — screenshot of github.com

Bbold

bbolt is an actively maintained fork of Bolt, a pure Go key/value store. It's a simple, fast, and reliable embedded database, ideal for Go projects not needing a full database server.

Visit github.com →

Questions & Answers

What is bbolt?
bbolt is an actively maintained fork of Ben Johnson's Bolt, a pure Go key/value store. It's designed to be a simple, fast, and reliable embedded database for Go applications.
Who should use bbolt?
bbolt is for Go developers building projects that require a low-level, embedded key/value store rather than a full database server like Postgres or MySQL. It targets applications needing improved reliability and stability from the original Bolt project.
How does bbolt compare to other databases like Postgres or LevelDB?
Unlike full relational databases like Postgres, bbolt is an embedded key/value store that does not require a separate server process. Compared to LevelDB or RocksDB, bbolt focuses on simplicity and consistency with a fixed API and file format, supporting single writer/multiple reader transactions. It is a fork of Bolt, offering active maintenance, bug fixes, and performance enhancements.
When should I consider using bbolt in my project?
You should consider bbolt when your Go project needs a simple, fast, and reliable embedded database for persistent storage, especially if you prioritize database consistency and thread safety for high-load production environments. It is suitable when a full database server is overkill for your application's needs.
How does bbolt handle concurrent access and transactions?
bbolt permits only one read-write transaction at a time but allows multiple concurrent read-only transactions. Each transaction maintains a consistent view of the data from its start, and transactions themselves are not thread-safe, requiring careful management across goroutines.