immudb - the lightweight, high-speed immutable database for systems and applications. Open Source and easy to integrate into any existing application.



Any kind of key-value. Clients can choose how to structure data.

No data mutation APIs are provided.

Data is never overwritten, so multiple versions of the same key co-exist and are verfiable.



Tamper-evident history system.

Clients and auditors want cryptographic proof of data inclusion and historical consistency in real time.

If tampered, clients and auditors will notice that and take actions.



Data ownership is verifiable by clients and auditors.

Sign your data using Public-Key Cryptography.

Keys additions and revocations is immutably stored into the database

Easy setup

Build Docker images based on the Dockerfiles in the GitHub repository for the most common architectures or use the prebuild ones on Dockerhub for Linux.

docker run -it -d -p 3322:3322 -p 9497:9497 --name immudb codenotary/immudb:latest

# Unmatched performance

immudb has been designed with read and write performance in mind while being tamper-proof. The benchmarks we've done show great results.

sequential write
Concurrency: 128
Iterations: 1000000
Elapsed t.: 3.06 sec
Throughput: 326626 tx/sec
batch write (async commit)
Concurrency: 16
Iterations: 1000000
Elapsed t.: 0.36 sec
Throughput: 2772181 tx/sec
  • 4 cores
  • ·
  • 16GB memory
  • ·
  • single SSD drive

immudb is often compared to Amazon QLDB. We compared the performance using a simple demo application to write data (without using any unfair optimization).

Immudb - Throughput read
Immudb - Throughput write
Immudb - Written records per ms
Immudb - Queried records per ms

# Why immudb?

immudb is a ledger database that has been developed with performance, scalability and versatility in mind. The user feedback has shown that they love the very high throughput and being able to store hashes as well as data. They see it as a great alternative to using a blockchain or ledger service.

  • Easy setup
  • Fast and reliable immutable database
  • Secure REST API gateway
  • Powerful, easy to use admin
  • Open source
Immudb - Made for the real world

# Very high throughput, immutable database with cryptographic verification

immudb is an indispensable asset when it comes to tamper-proof data:

  • Store every update to sensitive database fields (credit card or bank account data) of an existing application database
  • Store CI/CD recipes to build and deployment pipelines
  • Store public certificates
  • Store tamper-proof log streams (i. e. audit logs)
// Store any key, value auditproof and tamperproof
key2, value2 := []byte("myClient"), []byte("Visa 6679499384784022 11/23")
verifiedIndex, err := client.SafeSet(ctx, key2, value2)
if err != nil {
fmt.Println("   SafeSet - add and verify entry:")
printItem(key2, value2, verifiedIndex)
# install immudb service
./immuadmin service immudb install

# check current immudb service status
./immuadmin service immudb status

# install immugw service
./immuadmin service immugw install

# check immugw service
./immuadmin service immugw status
immudb - intuitive setup

# Intuitive setup

immudb is build with simplicity in mind:

  • Use the prebuild binaries or Docker container images for a fast start
  • Install, manage and run immudb and immugw as services (use 'immuadmin service')
  • Simple make command integration if you want to build the applications yourself
  • RESTful interfaces and easy to use clients
  • Combine with any existing application
Immudb - Made for the real world

# Consistency check built-in

immudb architecture has built-in verification and audit functionality:

  • immudb server is continuously checking disk/memory consistency
  • immugw is continuously checking the data consistency and integrity
  • immuclient has built-in data consistency and integrity checks
  • API's provide data ownership proof, verification and integrity functions
// built-in verification for every entry
verifiedItem, err := client.SafeGet(ctx, key2)
if err != nil {
fmt.Println("   SafeGet - fetch and verify entry:")
printItem(nil, nil, verifiedItem)

Coming Soon

# Coming soon

We're working hard every day to improve immudb and everything it has to offer. Here are some of the features we're planning to release:

  • rsyslog support
  • ·
  • Log4j integration
  • ·
  • PostgreSQL listener
  • ·
  • Managed ledger DBMS

# By developers, for developers

We have carefully designed immudb to be the one-stop intuitive immutable database solution, simple to write and simple to use.

    # The open-source immutable database

    Run immudb easily on Linux, FreeBSD, Microsoft Windows, and macOS, along with other systems derived from them, such as Kubernetes and Docker.