Skip to content
SPECIFICTION
Get listed

bbolt

github.com

Free plan WindowsmacOSLinuxiOSAndroidSelf-hosted
Visit github.com
Spec score 8.4 #6 of 30 in Embedded Databases

What it is

bbolt is a maintained fork of Bolt, providing Go applications with an embedded key-value store instead of a full database server. It keeps the database in one file, representing a consistent snapshot of its data. Key/value pairs are arranged in buckets, which can be nested, and bucket keys are stored in byte-sorted order. The library supports serializable ACID transactions: 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. bbolt exposes operation statistics that can be logged or sent to a service such as statsd. The project describes it as a fit for read-intensive workloads and range scans, while warning that random writes can be slow. The database file has an exclusive write lock, so multiple processes cannot share it for writing; read-only mode permits multiple readers. The project documents gomobile bindings for iOS and Android, as well as Windows, macOS and Linux support. It is free under the MIT license, with no paid support plan listed.

Spec sheet

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.Read 4 Oct 2026 · github.com
Integrations
The README lists projects using Bolt, including Consul, Containerd, InfluxDB, Prometheus Annotation Server, and NATS Streaming.Read 4 Oct 2026 · github.com
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.Read 4 Oct 2026 · github.com
Backup
A read-only transaction can write a consistent hot backup without blocking other database reads and writes.Read 4 Oct 2026 · github.com
Data organization
It organizes key/value pairs into buckets, supports nested buckets, and stores bucket keys in byte-sorted order.Read 4 Oct 2026 · github.com
Data-file limitation
Deleting large amounts of data does not reclaim file space; freed pages remain in the file for later reuse.Read 4 Oct 2026 · github.com
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.Read 4 Oct 2026 · github.com
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.Read 4 Oct 2026 · github.com
Mobile support
The project documents using gomobile bindings to run database logic on iOS and Android.Read 4 Oct 2026 · github.com
Monitoring
The database exposes operation statistics that can be logged or sent to a service such as statsd.Read 4 Oct 2026 · github.com
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.Read 4 Oct 2026 · github.com
Storage
A database is stored as a single file on disk and represents a consistent snapshot of the data.Read 4 Oct 2026 · github.com
Transactions
bbolt supports serializable ACID transactions with one read-write transaction at a time and multiple concurrent read-only transactions.Read 4 Oct 2026 · github.com
Workload fit
The project describes bbolt as suitable for read-intensive workloads and range scans, while warning that random writes can be slow.Read 4 Oct 2026 · github.com

Plans and prices

bbolt Free Open-source Go library and command-line utility · no paid plans listed Read 4 Oct 2026 · github.com

Every bbolt plan and price →

Strong points and limits

Strong points

  • Single-file database with consistent snapshots
  • Serializable ACID transactions
  • Hot backups do not block reads or writes
  • Free under the MIT license

Limits

  • Random writes can be slow
  • Only one read-write transaction at a time
  • Multiple processes cannot share a file for writing
  • Large deletions do not reclaim file space

Who it suits

It suits Go applications that need an embedded key-value store, particularly for read-intensive workloads or range scans. Applications needing multi-process writes or fast random writes should account for its stated limits.

Verdict

bbolt offers a compact embedded store with transactions, concurrent reads and non-blocking hot backups. Its workload and file-lock limits matter for applications that need random writes or shared multi-process writes.

Where Specifiction places it

Alternatives to bboltAll alternatives →