awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
tidwall avatar

tidwall/buntdb

0
View on GitHub↗
4,834 stars·299 forks·Go·mit·15 views

Buntdb

BuntDB is an embedded key-value store for Go applications, providing in-memory storage with optional disk persistence. It structures data using a B-tree for ordered key-value access and an R-tree for spatial indexing, allowing both range scans and geometric intersection queries. Support for indexing on nested JSON document fields enables efficient lookups by values within JSON objects, and per-key time-to-live (TTL) expiration automatically removes stale entries.

The store uses copy-on-write transaction isolation, ensuring each transaction sees a consistent snapshot and changes are applied atomically as a single unit that commits or rolls back entirely. Durability is achieved through an append-only write-ahead log that records all mutations to a file, which is replayed on restart and periodically compacted. Custom B-tree indexes can be created on keys, values, JSON fields, or composite fields with support for multi-column ordering, descending order, and locale-specific collation, while the R-tree spatial index stores points and rectangles for intersection queries.

The system groups multiple read and write operations into atomic transactions and offers automatic data expiration via per-key TTL timers with a background sweeper. Together, these capabilities make it a compact embedded database suitable for range queries, geospatial lookups, and JSON field-indexed access within single Go programs.

Features

  • Concurrent Read-Write Transactions - Grouping reads and writes into isolated atomic operations to ensure data consistency in concurrent Go applications.
  • Copy-on-Write Transaction Systems - Groups multiple reads and writes into a single atomic transaction that can commit all changes or roll back on failure.
  • Atomic Transaction Execution - Group reads and writes into atomic, isolated transactions that either commit all changes or roll back on failure, ensuring consistency.
  • Copy-on-Write Transactional Models - Each transaction sees a consistent snapshot, with changes applied atomically using a copy-on-write mechanism.
  • Geospatial Indexes - Retrieve all items that intersect a given region from an R-tree spatial index.
  • R-Tree Indexes - Store points or rectangles in a multi-dimensional R-tree for efficient intersection queries.
  • R-Tree Spatial Indexes - Stores points and rectangles in a multi-dimensional R-tree for quickly finding all items that intersect a given region.
  • R-Tree Spatial Indexes - Storing and retrieving spatial data using R-tree indexes for intersection queries, ideal for map or location-based applications.
  • Append-Only Log Stores - A write-ahead log that records all mutations to a durable file, replayed on restart and compacted periodically.
  • Nested JSON Field Indexes - Provides the ability to create B-tree indexes on specific nested JSON document fields, enabling efficient ordered iteration and lookups by values within JSON objects.
  • B-Tree - An ordered tree structure that supports fast range scans and composite key/value indexing for sorted data access.
  • B-Tree and R-Tree Indexed Stores - An embedded database that stores key-value pairs and supports ordered B-tree indexes and spatial R-tree queries on fields.
  • Composite and Collated Indexes - Create B-tree indexes on keys, values, JSON fields, or composite fields with support for multi-column, descending order, and locale-specific collation.
  • Embedded Key-Value Stores - An in-memory key-value database with optional disk persistence, transactions, and custom indexing for Go programs.
  • TTL Indexes - Assigns time-to-live durations to individual keys so that expired items are automatically removed during normal database operations.
  • Time-To-Live Expirations - Automatically delete items after a configurable time-to-live duration, with per-key TTL support and automatic eviction on expiration.
  • R-Tree Indexes - A multi-dimensional tree index that stores bounding boxes and enables geometric intersection queries.
  • Database Engines - Fast, embeddable, in-memory key/value database with custom indexing.
  • Database Systems - Listed in the “Database Systems” section of the Awesome Go awesome list.
  • Database Tools - In-memory KV database with persistence.
  • Databases - Fast in-memory key-value database with spatial support.
  • Key-Value Stores - Fast, embeddable, in-memory key-value store for Go.
  • Go Geospatial Libraries - Embeddable key/value database with geospatial support.

Star history

Star history chart for tidwall/buntdbStar history chart for tidwall/buntdb

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Buntdb

These projects share indexed features with Buntdb. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • roseduan/rosedbroseduan avatar

    roseduan/rosedb

    4,882View on GitHub↗

    RoseDB is an embedded key-value database and log-structured storage engine. It functions as a library-based database that runs within an application process to provide local data persistence without the need for a separate database server. The project implements a Bitcask-style store, utilizing an append-only log format to maximize write throughput and minimize seek time. It ensures data consistency by grouping multiple read and write operations into single atomic units. The storage architecture relies on an in-memory key index for constant-time lookups and uses segment-based file management

    Go
    View on GitHub↗4,882
  • nutsdb/nutsdbnutsdb avatar

    nutsdb/nutsdb

    3,554View on GitHub↗

    NutsDB is an ACID-compliant, embedded transactional storage engine that functions as both a disk-backed key-value store and an in-memory data structure store. It provides atomic and serializable transactions with commit and rollback capabilities to ensure strict data consistency for applications requiring a lightweight persistence layer. The engine distinguishes itself by supporting a variety of complex data types, including lists, sets, and sorted sets, alongside standard byte-slice storage. It implements a transactional storage model featuring hot backups and a compaction algorithm to maint

    Godata-structuresdatabasego
    View on GitHub↗3,554
  • etcd-io/bboltetcd-io avatar

    etcd-io/bbolt

    9,573View on GitHub↗

    bbolt is an ACID-compliant embedded key-value store for Go applications. It persists all data in a single memory-mapped file on disk, organizing information using B+ trees to facilitate sorted key iteration and efficient range queries. The project distinguishes itself through a hierarchical data organization model, allowing buckets to be nested within other buckets to create a tree-like structure. It employs a single-writer, multi-reader locking mechanism and copy-on-write transactions to ensure serializable isolation and data integrity. The system includes comprehensive data management capa

    Go
    View on GitHub↗9,573
  • syndtr/goleveldbsyndtr avatar

    syndtr/goleveldb

    6,319View on GitHub↗

    goleveldb is an embedded key-value storage database for Go. It provides local data persistence and indexing, allowing applications to store and retrieve information using unique keys without requiring a separate server. The database organizes data using a log-structured merge-tree and persistent indexing in lexicographical order. This structure supports efficient range scans and prefix-based searches. The system includes capabilities for atomic batch writes to ensure data consistency and avoid partial updates. Performance is managed through write-ahead logging, memory-based buffering, and bl

    Godatabasegoleveldb
    View on GitHub↗6,319
Compare all 30 related projects→

Frequently asked questions

What does tidwall/buntdb do?

BuntDB is an embedded key-value store for Go applications, providing in-memory storage with optional disk persistence. It structures data using a B-tree for ordered key-value access and an R-tree for spatial indexing, allowing both range scans and geometric intersection queries. Support for indexing on nested JSON document fields enables efficient lookups by values within JSON objects, and per-key time-to-live (TTL) expiration automatically removes stale entries.

What are the main features of tidwall/buntdb?

The main features of tidwall/buntdb are: Concurrent Read-Write Transactions, Copy-on-Write Transaction Systems, Atomic Transaction Execution, Copy-on-Write Transactional Models, Geospatial Indexes, R-Tree Indexes, R-Tree Spatial Indexes, Append-Only Log Stores.

Which projects share features with tidwall/buntdb?

Projects with overlapping indexed features include: roseduan/rosedb — RoseDB is an embedded key-value database and log-structured storage engine. It functions as a library-based database… nutsdb/nutsdb — NutsDB is an ACID-compliant, embedded transactional storage engine that functions as both a disk-backed key-value… etcd-io/bbolt — bbolt is an ACID-compliant embedded key-value store for Go applications. It persists all data in a single… syndtr/goleveldb — goleveldb is an embedded key-value storage database for Go. It provides local data persistence and indexing, allowing… dgraph-io/badger — Badger is an embeddable key-value store written in Go that provides persistent data storage for byte keys and values.… lmdb/lmdb — LMDB is an embedded key-value storage engine that provides ACID-compliant data persistence. It is a memory-mapped…