Hacker News new | ask | show | jobs
by samwillis 1249 days ago
See here: https://sqlite.org/wasm/doc/trunk/persistence.md#vfs-locking

It's mostly works with OPFS but with a few edge cases. They are working with the browser vendors on improving this in OPFS.

Alternatively run it in a SharedWorker (https://developer.mozilla.org/en-US/docs/Web/API/SharedWorke...), which seems to have made a comeback after being dropped for security concerns. Or do some sort of leader election with browser tabs and use a BroadcastChannel.

1 comments

SQLite WASM uses SharedArrayBuffers and Atomics to turn async OPFS apis into blocking APIs (really just _one_ api -- getSyncAccessHandle)

Given the use of SharedArrayBuffers and that SharedArrayBuffers can't be used in a shared worker (funny), SQLite WASM doesn't work in shared workers.

If getSyncAccessHandle was made synchronous then maybe everything would just work. It'd also improve SQLite WASM perf by 30% according to their measurements [1]

[1] https://sqlite.org/forum/forumpost/af64f73911e5410cf9a640c9e...