inMemDB

In-memory database for Go apps and standalone servers.

inMemDB can run inside your Go executable or as a local database server, giving services, CLIs, tests, and local-first tools fast structured storage.

two ways to run Go + CLI
# Embed in a Go application
go get github.com/inmemdb/inmemdb-go

package main

import (
    "context"

    "github.com/inmemdb/inmemdb-go"
)

func main() {
    ctx := context.Background()

    db, err := inmemdb.Open(ctx)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // Use through the DALgo database API.
    _ = db
}

# Or run as a standalone server
go install github.com/inmemdb/inmemdb-cli@latest
inmemdb serve

Why inMemDB

Use inMemDB when your application needs temporary, fast data storage with a real database-shaped API, either in-process or over a local server boundary.

Embed it

Ship storage inside your Go binary and keep deployments simple.

Run it

Start a standalone server for local workflows and tools.

Open source first

Developed in public as part of the DALgo database ecosystem.

Core capabilities

inMemDB is designed as a practical database engine, not just a key-value cache. It combines familiar relational concepts with document-style collection layouts.

Row-oriented and columnar storage

Choose storage layouts that fit transactional and analytical access patterns.

B-tree indexes

Use ordered indexes for lookups, ranges, sorting, and predictable scans.

Bitmap indexes

Accelerate selective filters and set-oriented query operations.

Persistence to disk

Keep the in-memory model while supporting durable local state.

Flat collections

Model table-like datasets with familiar relational structure.

Hierarchical collections

Represent nested application data in a Firestore-like shape.

SQL and GraphQL

Query data through standard SQL and GraphQL interfaces.

Transactions

Group changes into reliable units of work for application logic.

Made to embed into Go executables

inMemDB is implemented in Go and designed to be linked directly into Go applications. It is a library you import, not another service to run.

Run it as a standalone server

The inMemDB CLI packages the same product idea as a runnable database process. Use it when a tool, integration, or development workflow wants a server instead of an embedded library.

Powered by DALgo

The project exists to make the DALgo adapter model easier to try, embed, and understand. If you can use inMemDB, you can see how DALgo database implementations fit together.

Spec-driven development

inMemDB follows spec-driven development using the SpecScore specifications format: Markdown and YAML files for ideas, feature specs, requirements, acceptance criteria, scenarios, and implementation plans.

Used by DataTug

DataTug uses inMemDB as a data component and as a practical demonstration of building database adapters and runnable database tooling with DALgo.

DataTug

Database tools for teams that work with schemas, data, and change.

datatug.io

inGitDB sibling

A Git-backed database project in the same family of ideas.

ingitdb.com