An RDB (Redis Database) reader and writer written in Go.
RDB is a very compact single-file point-in-time representation of your Redis data.
Source: https://redis.io/docs/management/persistence/#rdb-advantages
The goal of this project is to create an implementation based on the documents and during the implementation, learn.
This project is still in development phase. In this stage the public API can change any time.
Beta version will be considered when the feature set covers the documents the implementation is based on, and the public API is reached a mature state.
Stable version will be considered only if enough positive feedback is gathered to lock the public API.
rdbc is a CLI tool that is part of this project. I found that the best way to design the API of the library is to use it. "Eating your own dog food."
usage: rdbc <command> [flags] [args...]
commands:
client connect to a Redis compatible server and read/write to it
transfer transfer the keys between files and Redis compatible servers
serve serve an RDB file to connecting replicas
stat show size statistics of the keyspace of a server
- librdb (Draft)
- Official RDB implementation
- Official RESP2 specifications
- Official RESP3 specifications
- RDB File Format (Version 4)
- RDB File Format (Version 7)
Inspiration for the implementation comes from the following places:
- https://pkg.go.dev/golang.org/x/image/riff
- https://pkg.go.dev/database/sql#Rows
- https://github.com/go-json-experiment/json/jsontext
Last updated: 2026-10-12
| URL | Status |
|---|---|
| https://github.com/HDT3213/rdb | In active development |
| https://github.com/siddontang/rdb | Last updated on 17 Mar 2015 |
| https://github.com/tent/rdb | Archived |
| https://github.com/tommy351/rdb-go | Last updated on 31 Oct 2023 |