Skip to content

App and Library Compatibility Table

Heyang Zhou edited this page Sep 25, 2022 · 6 revisions

Generally, apps and libraries will "just work" with the FUSE mode, and if they dynamically link against libsqlite3.so, will also work with the Preload mode, unless it does one of the following things:

  • Enable WAL mode
  • Change the database page size
  • Bypass SQLite and access the database file directly

This page documents the compatibility status of mvSQLite with various commonly-used SQLite libraries and apps.

Libraries

Platform Library mvSQLite (Preload) mvSQLite (FUSE)
Node.js Prisma ❌ (*1)
Node.js better-sqlite3 ❌ (*1)
Node.js node-sqlite3
Rust rusqlite ✅ (*2)
Go go-sqlite3 ✅ (*3)
LuaJIT luajit-sqlite ❌ (*1)
Python3 sqlite3

*1: Need patch to support dynamically linking libsqlite3

*2: Must not enable the bundled feature

*3: Need to set the libsqlite3 build tag

Apps

Library App mvSQLite (Preload) mvSQLite (FUSE)
node-sqlite3 Ghost
node-sqlite3 Outline
Prisma Cusdis
go-sqlite3 Focalboard ⚠️ (*1)
better-sqlite3 Trilium ⚠️ (*1, *2) ⚠️ (*2)

*1: Need patch to support dynamically linking libsqlite3

*2: Need patch to remove pragma journal_mode = wal

Clone this wiki locally