This page does not document every single change within the project, but does make note of significant changes or events. Newest first...
- 🎁 The pending 3.44 release increases the limit for any single memory allocation, enabling exports of databases larger than approx. 512mb provided the local environment permits such large allocations. The new limit, 2gb, is imposed by the core library instead of the WASM-level customizations.
- ⚠️The 3.43.0 release contains a broken
sqlite3-worker1-bundler-friendly.mjs. That's been fixed, but the canonical 3.43.0 release has that flaw. The corresponding npm release includes the corrected file. See this forum post for more details.
- 🎁 The upcoming 3.43 release deprecates
sqlite3_js_vfs_create_file()due to a recently-discovered crash-inducing incompatibility with the core-lib. Its replacement is, for the default VFS,
sqlite3_js_posix_create_file(), and VFS-specific alternatives are listed in the cookbook.
- 🎁 The
opfs-sahpoolVFS offers an exceedingly performant VFS for OPFS support without the need for the COOP/COEP HTTP headers, but at the cost of a complete lack of multi-tab concurrency.
- 🔒 Added some documentation about configuring the Content-Security-Policy HTTP header to enable loading of WASM.
- 🔒 The build was extended to support building with the SQLite Encryption Extension.
- 🎁 sqlite 3.41 has been released and includes all of the enhancements to the JS APIs added since the 3.40 release, e.g. the bundler-friendly JS files.
- 🎁 Separate builds of JS files suitable for use with JS "bundler" tools have been added. See these docs for details.
- ⚠️ ACHTUNG:️ Emscripten SDK 3.1.31 results in a broken build because it emits a "use strict" directive in an illegal place. 3.1.30 is known to work.
- 🎁 The commit/rollback/update/pre-update hook APIs were added.
- 🎁 The auto-extension API was added.
- 🎁 The session API was added. It has only minimal tests so far but seems to work.
- ✂ Changes in the OPFS-over-WASMFS backend (supplied by
Emscripten) have made it incompatible with the code we have in place
to support it, so documentation references to that persistent
storage implementation have been removed for the time
being. Details: that feature used to work solely in the main thread
and was unusable from a worker thread, but now it's the
opposite. Since we already have a Worker-thread OPFS
solution, there is no pressing need to
introduce a second one, in particular when
sqlite3.wasmbuilt with WASMFS makes the build less portable (does not work on some ARM platforms).
- 🔒 Added sqlite3_set_authorizer() support.
- ⚠️ ACHTUNG:️ Emscripten SDK 3.1.27 can lead to subtly broken
sqlite3.wasm. That version reduced the default WASM stack size from 5MB to 64KB, which silently leads to memory corruption in C code which uses more stack than that (e.g. via large function-local variables like those use by the kvvfs). When building with this version, or any later ones, it is necessary to increase the stack size using the
-sSTACK_SIZE=Nemcc flag. An N value of
512KBis believed to be sufficient for this project's builds. Note that
STACK_SIZEis the new (since 3.1.25) name of
The canonical builds now account for this using both the above build flag and less stack space, but the initial 3.40 release does not.
- 🥳 Public beta is open as of sqlite3 3.40. We expect any number of changes and additions to the JS APIs from now until 3.41, and anticipate applying strict backwards-compatibility constraints on existing JS APIs starting at that point.