herminedb
Hermine DB is a Asynchronous SQL Relational Database written in Kotlin, and the associated ADBA driver (Asynchronous DataBase Access)
It is based on Kotlin coroutines, and uses kotlinx-coroutines library
Building Hermine
Clone Hermine from GitHub.
Hermine require JDK 9 or later. It is modularized with Jigsaw.
Modules
Main modules
- herminedb-engine is the database itself
- herminedb-driver is the asynchronous driver to use to connect to Hermine DB, implements ADBA mirror.
- ADBA is Asynchronous Database Access, a non-blocking database access API that Oracle is proposing as a Java standard
- hermine-io contains the IO used by hermine DB engine and driver
Other modules
- hermine-jmh contains microbenchmarks for Hermine components
- hermine-playground is a free place to test various stuff, can contain influences and ideas
Inspirations and code origin
hermine-io's TCP is inspired by java.net.http from openjdk, that is a sandbox revision targeted for JDK11 of reactive (Flow) async http and http2 client created in JDK 9. hermine-driver is inspired by Oracle AoJ : ADBA over JDBC
Alternative to ADBA :
- R2DBC initiative to draft an entirely reactive database access API based on Reactive Streams and the proposal from David Karnok
- RDBC asynchronous database access API for Scala and Java