Kotlin.document.store - Fast NoSql document store for Kotlin Multiplatform

Hey! Check out kotlin.document.store. Any feedback would be greatly appreciated!

1 Like

Interesting idea. I’ve done several similar things. And I was thinking about making it more generic but decided against it because the use cases are quite different, and it is easier to make specific platform implementation when needed. More use cases would be nice.

Also why not use JCache for JVM?

Hey! Sorry for answering so late :sweat_smile:. I developed the project for usage inside the Package Search API client as cache for offloading the backend and offline usage and I was inspired by nitrite-java. The main use case was to easily store and retrieve json-like documents such as data classes inside the IntelliJ platform and in the browser. The google/leveldb addition for native was out for fun.

Inside IntelliJ we already had mvstore library available and the browser of course has IndexedDB already there. For native I was originally looking forward to use facebook/rocksdb but their compilation logic was so messed up that compiling it beyond their already supported platforms was a no go.

I was not able to find a project that was fast and feature-complete enough for our use case at the time and I realized that once solid a key-value storage is available, building an embedded document store was relatively trivial thanks to kotlinx.serialization and Kotlin itself, the only challenge was designing indexes. With hindsight I would to things without coroutines since the underlying APIs are not async.

In the meantime I changed job, so I am not really maintaining this anymore

1 Like