bbolt vs EJDB2
bbolt
github.comEJDB2
github.comSide by side
| Figure | bbolt | EJDB2 |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| iOS | Yes | Yes |
| Android | Yes | — |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Embedded Databases | 8.4 (#6) | 8.5 (#4) |
| Storage | A database is stored as a single file on disk and represents a consistent snapshot of the data. | The project lists a single-file database powered by IOWOW, a persistent key/value storage engine. |
Plans
In their own words
bbolt
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.
EJDB2
EJDB2 is a free, MIT-licensed JSON database engine implemented as a C library for embedding in applications. It stores data in a single file, using the IOWOW persistent key/value storage engine. Its JQL query language supports filtering, data modification, collection joins, projections, sorting, indexes, and options to skip, limit, or count results; online backup is also listed. For network access, the standalone jbs server provides HTTP REST and WebSocket endpoints. The server supports TLS 1.2, can require an access token in the X-Access-Token HTTP header, and offers a write-ahead-log option for durability. EJDB2 provides a C11 API and lists macOS, iOS, Linux, Windows, and self-hosted availability. The repository links to language bindings and tags the project with C, Dart, Flutter, Java, Node.js, React Native, and Swift, but its changelog says only Java and Node.js bindings are maintained after a 2025 cleanup. The project README says its issues tracker is disabled and welcomes contributions and pull requests. The listed plan is EJDB2 at free.