The v0.20.x series (I just released v0.20.1) should improve this significantly.
The driver was reserving lots of address space (with a protected, private, anonymous mapping) which doesn't play well with VMs and OSes that don't like to overcommit. It now reserves much less address space by default, and this can be reduced further.
I also brought SQLite WAL mode support to 32-bit archs, to Windows and (through a build tag) to any OS that with an atomic mkdir (used for locking).
Happy to discuss here, if you're looking for more in depth commentary.
I'm the developer of the Wasm driver mentioned in the article: https://github.com/ncruces/go-sqlite3
The v0.20.x series (I just released v0.20.1) should improve this significantly.
The driver was reserving lots of address space (with a protected, private, anonymous mapping) which doesn't play well with VMs and OSes that don't like to overcommit. It now reserves much less address space by default, and this can be reduced further.
I also brought SQLite WAL mode support to 32-bit archs, to Windows and (through a build tag) to any OS that with an atomic mkdir (used for locking).
Happy to discuss here, if you're looking for more in depth commentary.