SQLite Forum

Native support for pluggable backends in SQLite
Login
> This is not the case any more, use a VFS shim can handle the encryption and corruption detection.

While this is true, if you need reserved bytes in a page, then you must do either:

* The application uses `SQLITE_FCNTL_RESERVE_BYTES` to set the reserved bytes in the page. The VFS will not be able to do so by itself.

* When the VFS creates a new database file, it must prefill the header. However, then it might not be possible to reinitialize some fields that cannot be initialized after the database is created (such as the text encoding).

Neither alternative seems entirely satisfactory. There may be other things that could be improved with the VFS implementation, although I don't know.