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
- Host: GitHub
- URL: https://github.com/input-output-hk/iodb
- Owner: input-output-hk
- License: cc0-1.0
- Created: 2016-06-06T22:21:19.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2017-12-06T13:01:35.000Z (over 8 years ago)
- Last Synced: 2025-10-20T18:44:44.916Z (5 months ago)
- Language: Scala
- Homepage:
- Size: 2.97 MB
- Stars: 95
- Watchers: 17
- Forks: 13
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - IODB
README
# IODB - database engine for blockchain
[](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
[](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
```