(These docs are 🚧 under construction 🚧.)
See also: C structs in JS
It is possible to create custom sqlite3_vfs
implemenations entirely in JavaScript, as well as hybrid C/JS
VFSes. The OPFS VFS is an example of the
former and the Key-Value VFS is an example
of the latter: it has a pure C implementation and three methods get
swapped out with JavaScript implementations to replace the storage
backend.
This document does not aim to explain how to create a custom VFS, as that's covered extensively in the SQLite project's documentation, but covers the utility code supplied to help glue JS and C together for this purpose.
These docs are largely TODO, but a complete example can be found in the implementation code for the OPFS VFS, with the caveat that that one is "rather involved" because it has to implement a synchronous sqlite3_vfs wrapper on top of the asynchronous OPFS API, which requires no small amount of JavaScript acrobatics.
Extra sqlite3_vfs
Methods
The sqlite3_vfs
class inherits from the core C struct type
and extends the hierarchy with...
registerVfs()
sqlite3_vfs registerVfs(asDefault=false)
Uses sqlite3_vfs_register()
to register this
sqlite3_vfs
instance. This object must have already been
filled out properly. If the first argument is truthy, the VFS is
registered as the default VFS, else it is not.
On success, returns this object. Throws on error.