sqflite_common_ffi_web 0.1.0+1 copy "sqflite_common_ffi_web: ^0.1.0+1" to clipboard
sqflite_common_ffi_web: ^0.1.0+1 copied to clipboard

Sqflite web implementation using sqlite3 ffi and sqlite3 wasm.

sqflite_common_ffi_web #

sqlite Web implementation (experimental). Features:

  • Persistency (in indexeddb)
  • Cross-tab safe (runs in web worker)

Thanks Simon Binder for the excellent sqlite3 lib.

Setup #

Add the dependency:

  dependencies:
    sqflite_common_ffi_web: '>=0.1.0-dev.1'

Setup binaries #

Implementation requires sqlite3.wasm binaries into your web folder as well as a sqflite specific service worker.

You can install binaries using the command:

$ dart run sqflite_common_ffi_web:setup

It should create the following files in your web folder:

  • sqflite3.wasm
  • sqflite_sw.js

that you can put in source control or not (personally I don't)

Use the proper factory. #

// Use the ffi web factory in web apps (flutter or dart)
var factory = databaseFactoryFfiWeb;
var db = await factory.openDatabase(inMemoryDatabasePath);
var sqliteVersion = (await db.rawQuery('select sqlite_version()')).first.values.first;
print(sqliteVersion); // should print 3.39.3

Status #

This is still experimental:

  • slow
  • not fully tested
  • bugs