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

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
tidwall avatar

tidwall/buntdb

0
View on GitHub↗
4,834 estrellas·299 forks·Go·mit·5 vistas

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.
  • Bases de datos - 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.

Historial de estrellas

Gráfico del historial de estrellas de tidwall/buntdbGráfico del historial de estrellas de tidwall/buntdb

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Buntdb

Proyectos open-source similares, clasificados según cuántas características comparten con Buntdb.
  • roseduan/rosedbAvatar de roseduan

    roseduan/rosedb

    4,882Ver en 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
    Ver en GitHub↗4,882
  • nutsdb/nutsdbAvatar de nutsdb

    nutsdb/nutsdb

    3,554Ver en 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
    Ver en GitHub↗3,554
  • etcd-io/bboltAvatar de etcd-io

    etcd-io/bbolt

    9,573Ver en 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
    Ver en GitHub↗9,573
  • syndtr/goleveldbAvatar de syndtr

    syndtr/goleveldb

    6,319Ver en 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
    Ver en GitHub↗6,319
Ver las 30 alternativas a Buntdb→

Preguntas frecuentes

¿Qué hace tidwall/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.

¿Cuáles son las características principales de tidwall/buntdb?

Las características principales de tidwall/buntdb son: 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.

¿Qué alternativas de código abierto existen para tidwall/buntdb?

Las alternativas de código abierto para tidwall/buntdb incluyen: 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…