- Home
- Embedded Databases
- bbolt
bbolt
What it is
bbolt is a maintained fork of Bolt that gives Go applications an embedded key-value store without requiring a full database server. The database is kept in a single file and represents a consistent snapshot of its data. Key/value pairs are organized into buckets, including nested buckets, with bucket keys in byte-sorted order. bbolt supports serializable ACID transactions, allowing one read-write transaction at a time alongside multiple concurrent read-only transactions. A read-only transaction can create a consistent hot backup without blocking other database reads and writes. The database exposes operation statistics that can be logged or sent to a service such as statsd. The project describes bbolt as a fit for read-intensive workloads and range scans, while warning that random writes can be slow. Its file lock prevents multiple processes from sharing a database for writing, though read-only mode allows multiple readers. The project documents gomobile bindings for iOS and Android, plus Windows, macOS, and Linux support. It is free and open source under the MIT license.
For and against
For
- Embedded store needs no full database server
- Supports serializable ACID transactions
- Read-only transactions can make hot backups
- Supports nested buckets
- Free under the MIT license
Against
- Random writes can be slow
- Only one read-write transaction at a time
- Multiple processes cannot share write access
- Deleted data does not reclaim file space
The verdict
bbolt offers an embedded, single-file key-value store with transactional reads and writes and documented mobile bindings. Its write-lock and workload limits matter for applications needing concurrent writers or frequent random writes.
Who it suits
bbolt suits Go developers who need an embedded key-value database for read-intensive work or range scans. It is also relevant to developers using its documented mobile bindings on iOS or Android.
Plans and prices
bbolt
Open-source Go library and command-line utility · no paid plans listed
Read 4 Oct 2026 · github.com
On the record
- Access limitation
- A database file uses an exclusive write lock and cannot be shared by multiple processes; read-only mode permits multiple processes to read it.github.com · read 4 Oct 2026
- Backup
- A read-only transaction can write a consistent hot backup without blocking other database reads and writes.github.com · read 4 Oct 2026
- Data-file limitation
- Deleting large amounts of data does not reclaim file space; freed pages remain in the file for later reuse.github.com · read 4 Oct 2026
- Data organization
- It organizes key/value pairs into buckets, supports nested buckets, and stores bucket keys in byte-sorted order.github.com · read 4 Oct 2026
- Install
- The README instructs Go developers to install the library with go get go.etcd.io/bbolt@latest and the CLI with go install go.etcd.io/bbolt/cmd/bbolt@latest.github.com · read 4 Oct 2026
- Integrations
- The README lists projects using Bolt, including Consul, Containerd, InfluxDB, Prometheus Annotation Server, and NATS Streaming.github.com · read 4 Oct 2026
- License and support
- The repository identifies an MIT license and directs users to its issues and discussions for project interaction; it does not list a paid support plan.github.com · read 4 Oct 2026
- Mobile support
- The project documents using gomobile bindings to run database logic on iOS and Android.github.com · read 4 Oct 2026
- Monitoring
- The database exposes operation statistics that can be logged or sent to a service such as statsd.github.com · read 4 Oct 2026
- Purpose
- bbolt is a maintained fork of Bolt, a pure Go embedded key/value store for applications that do not need a full database server.github.com · read 4 Oct 2026
- Scale and memory
- The project says databases can exceed physical RAM if the memory map fits the process virtual address space, and notes this may be problematic on 32-bit systems.github.com · read 4 Oct 2026
- Storage
- A database is stored as a single file on disk and represents a consistent snapshot of the data.github.com · read 4 Oct 2026
- Transactions
- bbolt supports serializable ACID transactions with one read-write transaction at a time and multiple concurrent read-only transactions.github.com · read 4 Oct 2026
- Workload fit
- The project describes bbolt as suitable for read-intensive workloads and range scans, while warning that random writes can be slow.github.com · read 4 Oct 2026