DEV.co
Open-Source Databases · nutsdb

nutsdb

NutsDB is an embedded key-value store written in Go that persists data to disk and supports transactions, lists, sets, and sorted sets. It's designed for applications that need a simple, fast, single-process database without external dependencies.

Source: GitHub — github.com/nutsdb/nutsdb
3.6k
GitHub stars
341
Forks
Go
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorynutsdb/nutsdb
Ownernutsdb
Primary languageGo
LicenseApache-2.0 — OSI-approved
Stars3.6k
Forks341
Open issues49
Latest releasev1.1.0 (2025-12-17)
Last updated2026-07-06
Sourcehttps://github.com/nutsdb/nutsdb

What nutsdb is

NutsDB provides fully serializable transactions (read-only and read-write), multiple data structures (KV, list, set, sorted set), and recent performance improvements via Merge V2 (65% memory reduction) and HintFile indexing (61.6% faster startup). It uses file-based persistence with configurable segment sizes and optional concurrent-safe merge operations.

Quickstart

Get the nutsdb source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/nutsdb/nutsdb.gitcd nutsdb# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Embedded Application State

Suitable for Go applications needing durable local state without running a separate database server (caching layers, configuration stores, session backends).

Edge & IoT Deployments

Low resource footprint and pure-Go implementation make it viable for edge devices, embedded systems, or single-node IoT gateways where operational overhead must be minimal.

Data Structure Experimentation

Native support for lists, sets, and sorted sets with transactions simplifies prototyping of data-intensive features without adding complexity of a full database cluster.

Implementation considerations

  • Requires Go 1.24+; ensure runtime environment supports this version.
  • Must manually configure segment size and entry index mode at open time; no dynamic reconfiguration.
  • Data from pre-v1.0.0 is incompatible; plan migration strategy if upgrading existing deployments.
  • Buckets must be created explicitly in v1.0.0+; verify usage patterns in documentation before initial setup.
  • Monitor file descriptor usage on servers, especially with large segment sizes (default 256MB).

When to avoid it — and what to weigh

  • Multi-Node Consistency Required — NutsDB is single-process only; it has no built-in replication, clustering, or distributed consensus. If you need high availability or geographic distribution, this is unsuitable.
  • High-Concurrency Write Workloads — Transactions are serializable but single-threaded at the core; not designed for concurrent write-heavy scenarios. Consider if write throughput is a critical bottleneck.
  • Long-Term Data Compatibility Requirements — Breaking data format changes between v0.x and v1.0.0+ require manual migration. If future-proof backwards compatibility is non-negotiable, evaluate risk.
  • Complex Query Patterns & Aggregations — NutsDB lacks SQL or advanced query language; range scans and filters require application-level logic. Not suitable for complex analytical or reporting use cases.

License & commercial use

Licensed under Apache License 2.0 (Apache-2.0), an OSI-approved permissive license. Permits commercial use, modification, and distribution with liability and trademark disclaimers.

Apache-2.0 is a permissive OSI license that allows commercial use, derivative works, and distribution. No copyleft obligations. Verify internal legal review for your specific use case, but no inherent restrictions on commercial deployment.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

NutsDB has no built-in authentication, encryption at rest, or fine-grained access control. Suitable only for single-process applications with trusted code; not for multi-tenant or network-exposed scenarios. No security audit details or vulnerability disclosure policy are documented in provided data. Operator must ensure file permissions and process isolation.

Alternatives to consider

BoltDB / bbolt

Similar embedded KV store for Go; more mature and stable. Lacks native transaction support and complex data structures that NutsDB provides. Smaller community.

SQLite

Mature embedded SQL database with stronger querying; larger ecosystem and more conservative release cycle. Heavier resource footprint and requires CGo; no native complex data structure support.

RocksDB / Pebble

High-performance LSM-based stores used in production systems. RocksDB requires CGo; Pebble is pure Go but lower-level API and less feature-rich than NutsDB's data structures.

Software development agency

Build on nutsdb with DEV.co software developers

Our team can help you assess compatibility with your architecture, plan migrations from older versions, and design transaction patterns for your use case. Contact us to discuss implementation.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

nutsdb FAQ

Can I use NutsDB across multiple processes or machines?
No. NutsDB is single-process only and does not support replication or clustering. Each process must have its own database instance.
Is my v0.x data compatible with v1.0.0+?
No. Starting with v1.0.0, the underlying storage format changed. You must rewrite or migrate data before upgrading.
What Go version is required?
Go 1.24 or later is required.
Does NutsDB support encryption or access control?
No built-in support. You must implement encryption at the application layer and rely on OS file permissions for access control.

Software development & web development with DEV.co

Adopting nutsdb is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source databases software in production.

Ready to evaluate NutsDB for your project?

Our team can help you assess compatibility with your architecture, plan migrations from older versions, and design transaction patterns for your use case. Contact us to discuss implementation.