An open API service indexing awesome lists of open source software.

https://github.com/input-output-hk/iodb

Multiversioned key-value database, especially useful for blockchain
https://github.com/input-output-hk/iodb

Last synced: 2 months ago
JSON representation

Multiversioned key-value database, especially useful for blockchain

Awesome Lists containing this project

README

          

# IODB - database engine for blockchain

[![Build Status](https://travis-ci.org/input-output-hk/iodb.svg?branch=master)](https://travis-ci.org/input-output-hk/iodb)

IODB is embedded storage engine designed for blockchain applications.
It is inspired by [RocksDB](http://rocksdb.org).
It provides ordered key-value store, it is similar to `SortedMap`.
Its main advantage are snapshots with branching and fast rollbacks.

Main features include:
- Ordered key-value store
- Written in Scala, functional interface
- Multi-threaded background compaction
- Very fast durable commits
- Atomic updates with MVCC isolation and crash protection
- Snapshots with branching and rollbacks
- Log structured storage, old data are never overwritten for improved crash protection

Getting started
---------------------

IODB builds are available in [Maven repository](https://mvnrepository.com/artifact/org.scorexfoundation/iodb_2.12). Maven dependency snippet is bellow, replace `$VERSION` with
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.scorexfoundation/iodb_2.12/badge.svg)](https://mvnrepository.com/artifact/org.scorexfoundation/iodb_2.12)
:

```xml

org.scorexfoundation
iodb_2.12
$VERSION

```

Code examples are in the [src/test/scala/examples](src/test/scala/examples) folder.

Documentation is in the [doc](doc) folder.

Compile
---------

IODB works with Intellij IDEA with Scala plugin.

- Checkout IODB:
```
git clone https://github.com/input-output-hk/iodb.git
```
- Install [SBT](http://www.scala-sbt.org/release/docs/Setup.html)

- Compile IODB and install JAR files into local repository:
```
sbt publish
```