# nutsdb/nutsdb

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nutsdb-nutsdb).**

3,554 stars · 345 forks · Go · apache-2.0

## Links

- GitHub: https://github.com/nutsdb/nutsdb
- Homepage: https://nutsdb.github.io/nutsdb/
- awesome-repositories: https://awesome-repositories.com/repository/nutsdb-nutsdb.md

## Topics

`data-structures` `database` `go` `golang` `key-value` `kv-store` `nutsdb` `supports-transactions`

## Description

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 maintain write performance and storage efficiency.

The system includes capabilities for atomic integer arithmetic, bitwise operations, and data expiration via time-to-live settings. Data retrieval is supported through cursor-based iteration and key pattern scanning using prefixes, ranges, or regular expressions. It also provides a watch system for real-time notifications when specific keys are modified.

## Tags

### Data & Databases

- [Embedded Key-Value Stores](https://awesome-repositories.com/f/data-databases/storage-engines/key-value/embedded-key-value-stores.md) — Provides an embedded key-value store for persisting byte slices within isolated, named buckets. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [Manual Transaction Controls](https://awesome-repositories.com/f/data-databases/atomic-commit-logs/transaction-lifecycle-control/manual-transaction-controls.md) — Provides explicit begin, commit, and rollback methods for direct transaction lifecycle management. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [Complex Data Structure Stores](https://awesome-repositories.com/f/data-databases/complex-data-structure-stores.md) — Organizes data using lists, sets, and sorted sets to handle diverse storage and retrieval requirements. ([source](https://cdn.jsdelivr.net/gh/nutsdb/nutsdb@master/README.md))
- [Complex Data Structure Stores](https://awesome-repositories.com/f/data-databases/in-memory-data-stores/complex-data-structure-stores.md) — Supports high-performance data manipulation of complex types including lists, sets, and sorted sets.
- [Disk-Backed Stores](https://awesome-repositories.com/f/data-databases/in-memory-data-stores/disk-backed-stores.md) — Utilizes memory-mapped files and standard file I/O to persist large datasets on physical disks.
- [Append-Only Log Stores](https://awesome-repositories.com/f/data-databases/key-value-stores/append-only-log-stores.md) — Implements a persistence layer that writes data to an append-only file with an in-memory index for high write throughput.
- [Complex Data Type Indexing](https://awesome-repositories.com/f/data-databases/large-scale-dataset-management/complex-data-type-indexing.md) — Organizes diverse datasets using lists, sets, and sorted sets to enable efficient range scans and membership checks.
- [Atomic State Updates](https://awesome-repositories.com/f/data-databases/persistent-application-state/job-state-persistence/state-querying/atomic-state-updates.md) — Ensures data consistency and isolation during complex write cycles using serializable transactions and atomic operations.
- [ACID-Compliant](https://awesome-repositories.com/f/data-databases/storage-engines/acid-compliant.md) — Provides a storage engine that ensures atomic, consistent, isolated, and durable operations with crash safety and rollback support.
- [Key-Value](https://awesome-repositories.com/f/data-databases/storage-engines/key-value.md) — Persists data as simple key-value pairs for high-performance access within a transactional context. ([source](https://cdn.jsdelivr.net/gh/nutsdb/nutsdb@master/README.md))
- [Strict Serializability](https://awesome-repositories.com/f/data-databases/strict-serializability/strict-serializability.md) — Ensures strict data consistency through sequential transaction processing and absolute serializability. ([source](https://nutsdb.github.io/nutsdb-docs/docs/overview))
- [Transactional Storage Engines](https://awesome-repositories.com/f/data-databases/transactional-storage-engines.md) — Provides a transactional storage model featuring hot backups and a compaction algorithm to maintain write performance.
- [Byte Sequence Storage](https://awesome-repositories.com/f/data-databases/byte-sequence-storage.md) — Stores and manages raw binary data sequences as the fundamental unit for key-value storage.
- [Cursor-Based Iteration](https://awesome-repositories.com/f/data-databases/cursor-based-iteration.md) — Traverses entries in forward or reverse order using a cursor to process large datasets efficiently. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [Storage Compaction Utilities](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/specialized-database-engines/time-series-data-storage/storage-compaction-utilities.md) — Reclaims storage space and maintains write performance by merging multiple versions of the same key. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [In-Memory Caches](https://awesome-repositories.com/f/data-databases/in-memory-caches.md) — Implements high-speed memory mapped files and time-to-live settings to manage temporary data and reduce latency.
- [Key Change Notifications](https://awesome-repositories.com/f/data-databases/key-change-notifications.md) — Provides a watch system to track changes to specific keys and trigger immediate notifications upon updates.
- [Prefix-Based Scanning](https://awesome-repositories.com/f/data-databases/key-value-pair-managers/prefix-based-scanning.md) — Retrieves entries using prefix matching, regular expressions, or range-based scans to find specific keys. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [Change Notifications](https://awesome-repositories.com/f/data-databases/key-value-pair-managers/prefix-based-scanning/change-notifications.md) — Monitors specific keys for modifications and triggers notifications when data updates occur. ([source](https://cdn.jsdelivr.net/gh/nutsdb/nutsdb@master/README.md))
- [List Data Structures](https://awesome-repositories.com/f/data-databases/list-data-structures.md) — Implements ordered sequence collections supporting efficient push, pop, and range-based operations. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [Log Compaction](https://awesome-repositories.com/f/data-databases/log-processing-engines/log-compaction.md) — Implements log compaction to retain only the latest value for each key, reclaiming space and optimizing reads.
- [Memory-Mapped Storage](https://awesome-repositories.com/f/data-databases/memory-mapped-storage.md) — Provides configurable storage options including memory-mapped files and standard file I/O. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [Set Data Structures](https://awesome-repositories.com/f/data-databases/set-data-structures.md) — Provides collections of unique elements optimized for membership testing and set-theoretic operations like unions and differences. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))
- [Sorted Sets](https://awesome-repositories.com/f/data-databases/sorted-sets.md) — Stores unique elements associated with numerical scores to enable efficient range queries and ranking operations. ([source](https://github.com/nutsdb/nutsdb/blob/master/README-CN.md))

### Operating Systems & Systems Programming

- [Memory-Mapped I/O](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-mapped-i-o.md) — Maps files directly into virtual memory to allow the operating system to handle page caching and disk I/O.

### Software Engineering & Architecture

- [Bucket-Based Namespaces](https://awesome-repositories.com/f/software-engineering-architecture/execution-control/namespace-isolation/bucket-based-namespaces.md) — Organizes key-value pairs into named logical containers to separate data domains within a single store.
- [Large Dataset Optimizations](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/data-handling-throughput/large-dataset-optimizations.md) — Optimizes memory usage and consistency through high-performance compaction algorithms on large-scale data. ([source](https://cdn.jsdelivr.net/gh/nutsdb/nutsdb@master/README.md))

### Part of an Awesome List

- [Database Systems](https://awesome-repositories.com/f/awesome-lists/data/database-systems.md) — Listed in the “Database Systems” section of the Awesome Go awesome list.
