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 8 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
Update bundled OpenSSL for SQLCipher to 4.0.3.
RawPreparedStatement.columnBytes and RawPreparedStatement.columnBlobInto, which copies a column into an existing buffer instead of allocating a new list for each value.defines accepts a map with per-OS entries and a default, like source and name.CommonDatabase.status() reporting status counters.Database.releaseMemory() on native platforms.Hooks: Support relative paths in additional_includes and additional_lib_directories .
additional_includes and additional_lib_directories.source: source.source and name accept a map with per-OS entries and a default (e.g. source: {android: system, default: sqlite3}). Names containing a path (like foo.framework/foo) are passed to the loader as-is with source: system.IndexedDbFileSystem.flush() not awaiting an ongoing write transaction.One column per quarter.
Fix WasmSqlite3.loadFromUrl silently dropping request headers and a custom WASM loader.
WasmSqlite3.loadFromUrl silently dropping request headers and a custom WASM loader.This release upgrades SQLite to 3.53.4 and SQLite3 Multiple Ciphers to 2.5.0.
This release upgrades SQLite to 3.53.4 and SQLite3 Multiple Ciphers to 2.5.0.
Full Changelog: sqlite3-3.5.0...sqlite3-3.5.1
Add CommonPreparedStatement.raw and RawPreparedStatement , providing raw access to prepared statements. On the web, this also allows binding JS big in
CommonPreparedStatement.raw and RawPreparedStatement, providing raw access to prepared statements. On the web, this also allows binding JS big integers directly.Add VirtualFileSystemFileV1 , allowing VFS implementations in Dart to implement xFileControl and xSectorSize .
VirtualFileSystemFileV1, allowing VFS implementations in Dart to implement xFileControl and xSectorSize.SQLITE_ENABLE_BATCH_ATOMIC_WRITE to support atomic writes on compatible VFS implementations.writeAutomatically option. When disabled, writes are not automatically persisted and one needs to call flush manually. This explicit control can make database access more efficient in some cases.isLeaf, reducing the native overhead of calling them.execute and select.url_pattern user-define.Build hook: Fix assets being re-downloaded too often.
Restore support for SQLCipher (thanks to @davidmartos96!).
Support package:native_toolchain_c versions 0.18.x and 0.19.x.
package:native_toolchain_c versions 0.18.x and 0.19.x.hooks versions 2.x.BigInt support via -Dsqlite3.dartbigints=false, which can be used to
reduce code size on the web if nothing else uses BigInt values.Avoid memory leaks when tempDirectory is set multiple times.
tempDirectory is set multiple times.Web: Add WasmModuleLoader API to customize how WebAssembly modules are loaded.
WasmModuleLoader API to customize how WebAssembly modules are loaded.Add package:sqlite3/unstable/ffi_bindings.dart providing low-level access to generated libsqlite3 bindings.
package:sqlite3/unstable/ffi_bindings.dart providing low-level access to generated libsqlite3 bindings.PreparedStatement.leak to transfer ownership of a prepared statement into native code.Database.statementFromPointer, which can be used to access a statement prepared in native code from Dart.Update to sqlite version 3.52.0.
Expose the address of sqlite3_close_v2 as static field on Sqlite3 class.
sqlite3_close_v2 as static field on Sqlite3 class.borrowed parameter
on Sqlite3.fromPointer.Database.leak(), which extracts a sqlite3* pointer and disables
finalizers.Build hook: Ensure we use consistent filenames to fix issues on Apple platforms.
Build hook: Fix paths not resolving on Windows when building from source.
Update to SQLite version 3.51.2.
Database.select() will now throw an exception if the SQL string contains invalid text after the first statement.
Database.select() will now throw an exception if the SQL string contains
invalid text after the first statement.source: system.Hooks: Respect HTTPS_PROXY and related environment variables when downloading SQLite (requires Dart 3.11 or later).
HTTPS_PROXY and related environment variables when
downloading SQLite (requires Dart 3.11 or later).Build hook: Allow using name key with source: system to load SQLite libraries under a different name (e.g. name: sqlcipher to load SQLCipher).
name key with source: system to load SQLite
libraries under a different name (e.g. name: sqlcipher to load SQLCipher).Build hook: Use clang from XCode when pre-compiling SQLite for iOS and macOS.
__Breaking change__: Use build hooks to load SQLite instead of DynamicLibrary.
DynamicLibrary.
sqlite3_flutter_libs and
sqlcipher_flutter_libs when upgrading.sqlite3_native_assets, since that
package is now part of package:sqlite3.SqliteExceptions are now named.dispose() on CommonDatabase and CommonPreparedStatement. Use close()
instead.externrefs to call Dart functions from compiled WebAssembly sources.busyHandler setter to install a custom sqlite3_busy_handler on databases.Nothing published for this version
Nothing published for this version
Nothing published for this version
SimpleOpfsFileSystem: Allow opening with readwrite-unsafe, which can be used to implement multi-tab OPFS databases on Chrome with an outer locking sch
SimpleOpfsFileSystem: Allow opening with readwrite-unsafe, which can be used to implement
multi-tab OPFS databases on Chrome with an outer locking scheme.Allow iterating over statements after SQLITE_BUSY errors.
SQLITE_BUSY errors.Fix a bug introduced in version 2.9.1 where the SQLite framework provided by sqlite3_flutter_libs would not load correctly on iOS.
2.9.1 where the SQLite framework provided by
sqlite3_flutter_libs would not load correctly on iOS.Check for error codes when binding values to prepared statements.
sqlite3_flutter_libs.Add CommonDatabase.updatesSync, a synchronous variant of the updates stream.
CommonDatabase.updatesSync, a synchronous variant of the updates stream.Support creating changesets and patchsets via the session extension.
SubtypedValue extension type to allow returning values with a subtype.subtypeOf method to the SqliteArguments interface passed to user-defined
functions. It returns the subtype assigned to an argument.jsonb codec: Refuse to encode NaN values since recent SQLite versions reject them.
jsonb codec: Refuse to encode NaN values since recent SQLite versions
reject them.Export package:sqlite3/native_assets.dart, making it easier for libraries to support both the regular sqlite3 getter and the upcoming sqlite3NativeAss
package:sqlite3/native_assets.dart, making it easier for libraries
to support both the regular sqlite3 getter and the upcoming
sqlite3NativeAssets variant.On Windows, try loading winsqlite3.dll as a fallback if loading sqlite3.dll fails.
winsqlite3.dll as a fallback if loading
sqlite3.dll fails.Prepare support for accessing SQLite through native assets. This is available as a preview through package:sqlite3_native_assets.
package:sqlite3_native_assets.Web: Support localtime datetime modifier in SQLite.
localtime datetime modifier in SQLite.SqliteException.Web: Fix update events not being delivered in some shared worker setups.
Web: Fix a crash when using version 2.7.0 of this package with an older WebAssembly bundle. Note: Version 2.7.0 has been retracted from pub.dev for th
2.7.0 of this package with an older
WebAssembly bundle.
Note: Version 2.7.0 has been retracted from pub.dev for this reason.Add support for commit and rollback hooks as well as a predicate that can revert transactions. Thanks to @jackd!
Fix out-of-bound reads in the xWrite implementation of the OPFS-locks based file-system implementation when writing more than 64 KiB in one operation.
xWrite implementation of the OPFS-locks based
file-system implementation when writing more than 64 KiB in one operation.SQLITE_OMIT_AUTOINIT.Add SimpleOpfsFileSystem.deleteFromStorage to delete OPFS-based file systems.
SimpleOpfsFileSystem.deleteFromStorage to delete OPFS-based file
systems.jsonb, a Dart Codec converting Dart object from and to SQLite
JSONB values.Allow registering custom virtual file systems on all platforms. Previously, this was only supported on the web.
ArrayBuffers instead of Blobs when it looks
like storing blobs would cause issues.Web: Improve performance of in-memory and IndexedDB file system implementations.
WebAssembly: Call _initialize function of sqlite3 module if one is present.
_initialize function of sqlite3 module if one is present.package:web.Fix a bug in the OPFS-locks implementation causing a deadlock when the xSleep VFS call is issued.
xSleep
VFS call is issued.BigInt in Dart)
not working when compiled with dartdevc.Add a temporary workaround for a Dart bug causing spurious exceptions when databases are closed and a debugger is attached.
Migrate away from legacy web APIs: dart:html, dart:js, dart:indexeddb and package:js are no longer imported from this package.
dart:html, dart:js, dart:indexeddb
and package:js are no longer imported from this package.Fix string and blob arguments to prepared statements never being deallocated (#225).
Allow version 0.7.x of the js package.
0.7.x of the js package.sqlite3.wasm bundle by removing symbols not referenced in
Dart.Nothing published for this version
Add isReadOnly and isExplain getters to prepared statements.
isReadOnly and isExplain getters to prepared statements.NativeCallable.keepIsolateAlive to false for callables managed by
this package.Add the autocommit getter on databases wrapping sqlite3_get_autocommit.
autocommit getter on databases wrapping sqlite3_get_autocommit.Add updatedRows getter to eventually replace getUpdatedRows() method.
updatedRows getter to eventually replace getUpdatedRows() method.lastInsertRowId and updatedRows.backup. A larger
amount will result in better backup performance.NativeCallables for user-defined functions, collations and update
streams.Add config getter to CommonDatabase to access sqlite3_db_config.
config getter to CommonDatabase to access sqlite3_db_config.They can be used to control whether values are bound by index or by name. The selectMap and executeMap methods have been deprecated.
registerVirtualFileSystem needs to be used to add
desired file system implementations.CommmonSqlite3 is now called CommonSqlite3.PreparedStatement.reset().CustomStatementParameter class which can be passed as a statement
parameter with a custom sqlite3_bind_* call.StatementParameters class and executeWith/selectWith methods
on CommonPreparedStatement. They can be used to control whether values are
bound by index or by name. The selectMap and executeMap methods have
been deprecated.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Report correct column names for statements that have been re-compiled due to schema changes.
Your coding agent can read these notes before it upgrades. Set up the MCP server →