hashicorp/go-memdb

Golang in-memory database built on immutable radix trees

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 8 minutes ago
Type:Library / SDKCategory(s):NoSQL, Key-Value & CachesDatabases & Storage
Added to GitGenius on September 20th, 2026
Created on June 16th, 2015
Open Issues & Pull Requests: 47 (+0)
GitHub issues: Enabled
Number of forks: 230
Total Stargazers: 3,473 (+0)
Total Subscribers: 319 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 2,021 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

go-memdb is an in-memory database library for Go built on immutable radix trees.

The tool solves the problem of needing transactional, indexed data storage within a single process without external dependencies. It uses immutable radix trees as its foundation to enable lock-free concurrent reads while allowing writers to make progress. Transactions span multiple tables and are applied atomically, with changes remaining invisible until commit. The database provides Atomicity, Consistency, and Isolation guarantees from ACID, though durability is not supported since data exists only in memory.

The tool suits applications that need fast, in-process data access with rich querying capabilities rather than a persistent store. It is particularly valuable for systems requiring Multi-Version Concurrency Control where many readers must operate without blocking. The watch mechanism allows callers to detect modifications affecting specific query results, enabling reactive patterns. Developers should adopt this tool when building services that can tolerate data loss on shutdown but need sophisticated indexing, including compound field indexes and type-specific compression like UUID optimization.

The project maintains a steady stream of maintenance activity with regular updates addressing issues and dependencies. Pull requests receive timely review and integration. The codebase shows consistent attention to test coverage and documentation quality. Development remains focused on the core in-memory database functionality without scope creep into persistence or clustering features.