Stefan Oltmann
08/27/2025, 5:33 PMRobert Jaros
08/27/2025, 5:44 PMkotlin-browser from the wrappers project has bindings for IndexedDb. But I haven't used it.Stefan Oltmann
08/27/2025, 5:45 PMeygraber
08/27/2025, 5:47 PMStefan Oltmann
08/27/2025, 5:48 PMStefan Oltmann
08/27/2025, 5:49 PMeygraber
08/27/2025, 5:50 PMWinson Chiu
08/27/2025, 5:56 PMStefan Oltmann
08/27/2025, 6:13 PMStefan Oltmann
08/27/2025, 6:13 PMWinson Chiu
08/27/2025, 6:15 PMWinson Chiu
08/27/2025, 6:16 PMStefan Oltmann
08/27/2025, 6:20 PMStefan Oltmann
08/27/2025, 6:21 PMStefan Oltmann
08/27/2025, 6:21 PMRobert Jaros
08/27/2025, 6:22 PMStefan Oltmann
08/27/2025, 6:23 PMturansky
08/27/2025, 6:29 PMMichael Paus
08/27/2025, 6:30 PMturansky
08/27/2025, 6:31 PMturansky
08/27/2025, 6:33 PMWinson Chiu
08/27/2025, 6:36 PMMichael Paus
08/27/2025, 6:36 PMMichael Paus
08/27/2025, 6:42 PMRobert Jaros
08/27/2025, 6:47 PMturansky
08/28/2025, 2:12 AMkatokay
08/28/2025, 11:40 AMStefan Oltmann
08/28/2025, 11:45 AMRobert Jaros
08/28/2025, 11:50 AMkatokay
08/28/2025, 11:52 AMkatokay
08/28/2025, 11:56 AMStefan Oltmann
08/28/2025, 12:02 PMStefan Oltmann
08/28/2025, 12:03 PMEverything uses IndexDB under the coversThat confuses me.
Michael Paus
08/28/2025, 12:03 PMRobert Jaros
08/28/2025, 12:05 PMStefan Oltmann
08/28/2025, 12:07 PMRobert Jaros
08/28/2025, 12:08 PMStefan Oltmann
08/28/2025, 12:08 PMRobert Jaros
08/28/2025, 12:10 PMMichael Paus
08/28/2025, 12:10 PMkatokay
08/28/2025, 12:11 PMkatokay
08/28/2025, 12:13 PMMichael Paus
08/28/2025, 12:15 PMkatokay
08/28/2025, 12:29 PMMichael Paus
08/28/2025, 12:42 PMkatokay
08/28/2025, 12:42 PMkatokay
08/28/2025, 12:43 PMkatokay
08/28/2025, 12:44 PMRobert Jaros
08/28/2025, 12:49 PMRobert Jaros
08/28/2025, 12:49 PMkatokay
08/28/2025, 12:57 PMturansky
08/28/2025, 1:33 PMMichael Paus
08/28/2025, 2:11 PMlmdb.LmdbException: No such file or directory (Tried it first on JVM.)katokay
08/28/2025, 2:18 PMMichael Paus
08/28/2025, 2:25 PM.toVal() in several places.
In case of WebAssembly. What are good values for WasmUtils.mountBestFilesystem("???") and then env.open("???")?katokay
08/28/2025, 2:29 PMkatokay
08/28/2025, 2:30 PMMichael Paus
08/28/2025, 3:00 PMkotlin-lmdb/src/wasmJsMain/resources/kotlin/ or the ones from kotlin-lmdb/src/wasmJsMain/resources/ or something else? The variants donโt seem to be exactly the same.katokay
08/28/2025, 3:01 PMkatokay
08/28/2025, 3:02 PMMichael Paus
08/28/2025, 3:03 PMMichael Paus
08/28/2025, 3:17 PMkatokay
08/28/2025, 3:32 PMRobert Jaros
08/28/2025, 3:54 PM@JsModule("./lmdb-wrapper.mjs") with @JsModule("my-npm-package/lmdb-wrapper.mjs") and it should work.katokay
08/28/2025, 4:03 PMkatokay
08/28/2025, 5:46 PMMichael Paus
08/28/2025, 6:25 PMkatokay
08/28/2025, 6:56 PMMichael Paus
08/28/2025, 6:58 PMMichael Paus
08/29/2025, 12:24 PMpackage de.mpmediasoft.webcache.webcachedemo
expect class MonsterStore {
suspend fun open(name: String)
suspend fun store(key: String, data: ByteArray)
suspend fun retrieve(key: String): ByteArray?
suspend fun delete(key: String)
suspend fun dispose()
}
expect val store: MonsterStore
File MonsterStore.wasmJs.kt in wasmJsMain:
package de.mpmediasoft.webcache.webcachedemo
import js.buffer.toArrayBuffer
import js.typedarrays.toByteArray
import web.cache.*
import web.http.BodyInit
import web.http.Response
import web.http.bytes
actual class MonsterStore {
private lateinit var name: String
private lateinit var cache: Cache
actual suspend fun open(name: String) {
this.name = name
this.cache = caches.open(name)
}
actual suspend fun store(key: String, data: ByteArray) {
cache.put(key, Response(BodyInit(data.toArrayBuffer())))
}
actual suspend fun retrieve(key: String): ByteArray? {
return cache.match(key)?.bytes()?.toByteArray()
}
actual suspend fun delete(key: String) {
cache.delete(key)
}
actual suspend fun dispose() {
caches.delete(name)
}
}
actual val store: MonsterStore = MonsterStore()
Use these coordinates for kotlin-wrapper:
kotlin-browser = "2025.8.21"
kotlin-browser = { module = "org.jetbrains.kotlin-wrappers:kotlin-browser", version.ref = "kotlin-browser" }Stefan Oltmann
08/29/2025, 12:36 PMStefan Oltmann
08/29/2025, 12:37 PMStefan Oltmann
08/29/2025, 12:38 PMStefan Oltmann
08/29/2025, 12:38 PMkatokay
08/29/2025, 12:47 PMStefan Oltmann
08/29/2025, 12:49 PMturansky
08/29/2025, 1:26 PM// before
cache.match(key)?.bytes()?.toByteArray()
// after
cache.match(key)?.byteArray()
?Michael Paus
08/29/2025, 1:28 PMturansky
08/29/2025, 1:28 PMMichael Paus
08/29/2025, 1:29 PMturansky
08/29/2025, 1:29 PMbyteArray() previously - we added it ๐Michael Paus
08/29/2025, 1:36 PMMichael Paus
08/29/2025, 2:15 PMturansky
08/29/2025, 2:19 PMturansky
08/29/2025, 2:19 PMturansky
08/29/2025, 2:36 PM2025.8.22 released.
Will be available on MC in few hours ๐Michael Paus
08/29/2025, 2:38 PMturansky
08/29/2025, 2:38 PMturansky
08/29/2025, 2:38 PM0 ๐turansky
08/29/2025, 2:39 PMStefan Oltmann
08/29/2025, 2:46 PMturansky
08/29/2025, 2:48 PMMichael Paus
08/30/2025, 6:24 AMturansky
08/30/2025, 7:07 AMturansky
08/30/2025, 9:50 AMMichael Paus
08/30/2025, 12:05 PMStefan Oltmann
08/30/2025, 12:05 PMStefan Oltmann
08/30/2025, 12:06 PMMichael Paus
08/30/2025, 12:07 PMStefan Oltmann
08/30/2025, 12:08 PMStefan Oltmann
08/30/2025, 12:10 PM