NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #245 most downloaded on pub.dev
Provides lightweight yet convenient bindings to SQLite by using dart:ffi
Last release 4 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
7 years old
103 releases · first in 2019
Fix user-defined functions returning text not supporting multi-byte utf8 characters.
Add WasmSqlite3.loadFromUrl which uses a streaming fetch() request to load the sqlite3 WASM binary.
WasmSqlite3.loadFromUrl which uses a streaming fetch() request to
load the sqlite3 WASM binary.OpfsFileSystem, a file system implementation for the WASM library that
is based on the synchronous File System Access API.-Oz
instead of -Ofast.One column per quarter.
Fix a regression introduced in 1.10.0 causing crashes when SQL statements containing non-ASCII characters are prepared.
Rewrite the implementation to allow more code reuse between dart:ffi and the WASM-based web implementation.
dart:ffi and
the WASM-based web implementation.Provide more information about the source of sqlite exceptions.
Include parameters when throwing an exception in prepared statements.
Change Row.keys and Row.values to return a list.
Row.keys and Row.values to return a list.Add an API for sqlite3's backup API via Database.backup().
Database.backup().sqlite3.ensureExtensionLoaded.Use a Finalizer to automatically dispose databases and statements. As finalizers in Dart aren't reliable, you should still make sure to call dispose m
Finalizer to automatically dispose databases and statements. As
finalizers in Dart aren't reliable, you should still make sure to call
dispose manually after you're done with a database or a statement.@staticInterop classes.Optimizations in the wasm-based file system.
mutex parameter not doing anything in the FFI-based implementation.Allow binding BigInts to statements and functions. They must still be representable as a 64-bit int, but this closes a compatibility gap between the w
BigInts to statements and functions. They must still be
representable as a 64-bit int, but this closes a compatibility gap between
the web and the native implementations.Add support for application-defined window functions. To register a custom window function, implement WindowFunction and register your function with d
WindowFunction and register your function with
database.registerAggregateFunction.package:sqlite3/wasm.dart library):
IndexedDbFileSystem.load. Use IndexedDbFileSystem.open instead.IndexedDbFileSystem now stores all files, the concept of a persistence
root has been removed.
To access independent databases, use two IndexedDbFileSystems with a different
database name.Add FileSystem.listFiles() to list all files in a virtual WASM file system.
FileSystem.listFiles() to list all files in a virtual WASM file system.Fix CURRENT_TIMESTAMP not working with the WebAssembly backend.
CURRENT_TIMESTAMP not working with the WebAssembly backend.Better support loading sqlite3 on Linux when using sqlite3_flutter_libs.
sqlite3_flutter_libs.Very experimental web support, based on compiling sqlite3 to web assembly with a custom file system implementation.
Fix checkNoTail throwing for harmless whitespace or comments following a SQL statement.
checkNoTail throwing for harmless whitespace or comments following a
SQL statement.prepare with a statement
exclusively containing whitespace or comments.Add prepareMultiple method to prepare multiple statements from one SQL string.
prepareMultiple method to prepare multiple statements from one SQL string.selectMap and executeMap on PreparedStatement to bind SQL parameters by
their name instead of their index.createCollation.Report writes on the database through the Database.updates stream
Database.updates streamffigen to generate native bindingsFix a crash with common iOS and macOS configurations. The crash has been introduced in version 1.3.0, which should be avoided. Please consider adding
sqlite3: ^1.3.1 to your pubspec to avoid getting the
broken versionAdd Cursor.tableNames and Row.toTableColumnMap() to obtain tables involved in a result set. Thanks to @juancastillo0!
Cursor.tableNames and Row.toTableColumnMap() to obtain tables
involved in a result set.
Thanks to @juancastillo0!Add the selectCursor API on PreparedStatement to step through a result set row by row.
selectCursor API on PreparedStatement to step through a result set row by row.Attempt opening sqlite3 from DynamicLibrary.process() on macOS
DynamicLibrary.process() on macOSFix memory leak when preparing statements!
execute with arguments when the provided sql string contains
more than one argument.Add optional parameters to execute.
execute.Support version 1.0.0 of package:ffi
1.0.0 of package:ffiSupport version 0.3.0 of package:ffi
0.3.0 of package:ffiOpaque instead of empty structsAllocator api- Fix loading sqlite3 on iOS
- Migrate package to null safety
Nothing published for this version
Added the mutex parameter to control the serialization mode when opening databases.
mutex parameter to control the serialization mode
when opening databases.Expose the sqlite3_temp_directory global variable
sqlite3_temp_directory global variableExpose underlying database and statement handles
Use sqlite3_version to determine if sqlite3_prepare_v3 is available instead of catching an error.
sqlite3_version to determine if sqlite3_prepare_v3 is available
instead of catching an error.Use sqlite3_prepare_v2 if sqlite3_prepare_v3 is not available
sqlite3_prepare_v2 if sqlite3_prepare_v3 is not availableLower minimum version requirement on collection to ^1.14.0
collection to ^1.14.0Expose raw rows from a ResultSet
ResultSet- Expose the ResultSet class
ResultSet class- Initial version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →