sqlite3
Provides lightweight yet convenient bindings to SQLite by using dart:ffi
3.5.2
2.3M downloads/mo
#244 most downloaded on pub.dev
simolus3/sqlite3.dart
What this package is like to depend on
Last release 4 days ago
19 Aug 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 84 of 88 stable releases
2 versions withdrawn
withdrawn after publishing
7 years old
101 releases · first in 2019
27 releases in the last 12 months
see the full history below
Release timeline
101 releases · Nov 2019 to Aug 2026Releases
latest 60 of 101-
3.5.219 Aug 2026Release notes
Open source →- Fix
WasmSqlite3.loadFromUrlsilently dropping request headers and a custom WASM loader. - Fix OPFS atomics VFS causing IO errors for files larger than 2GB.
- Upgrade SQLCipher to 4.18.0.
Release notes
Open source →- Fix
WasmSqlite3.loadFromUrlsilently dropping request headers and a custom WASM loader. - Fix OPFS atomics VFS causing IO errors for files larger than 2GB.
- Upgrade SQLCipher to 4.18.0.
- Fix
-
3.5.104 Aug 2026Release notes
Open source →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
-
3.5.018 Jul 2026Release notes
Open source →- Add
CommonPreparedStatement.rawandRawPreparedStatement, providing raw access to prepared statements. On the web, this also allows binding JS big integers directly.
Release notes
Open source →- Add
CommonPreparedStatement.rawandRawPreparedStatement, providing raw access to prepared statements. On the web, this also allows binding JS big integers directly.
- Add
-
3.4.012 Jul 2026Release notes
Open source →- Add
VirtualFileSystemFileV1, allowing VFS implementations in Dart to implementxFileControlandxSectorSize. - Enable
SQLITE_ENABLE_BATCH_ATOMIC_WRITEto support atomic writes on compatible VFS implementations. - IndexedDB fileystem: Add
writeAutomaticallyoption. When disabled, writes are not automatically persisted and one needs to callflushmanually. This explicit control can make database access more efficient in some cases. - IndexedDB filesystem: Restructure IndexedDB code to use much fewer transactions, improving performance.
- Update SQLite to 3.53.3, SQLite3 Multiple Ciphers to 2.3.6 and SQLCipher to 4.17.0.
- Mark a few functions as
isLeaf, reducing the native overhead of calling them. - Reset statements after
executeandselect. - Allow custom download URLs for pre-compiled binaries through the
url_patternuser-define.
Release notes
Open source →- Add
VirtualFileSystemFileV1, allowing VFS implementations in Dart to implementxFileControlandxSectorSize. - Enable
SQLITE_ENABLE_BATCH_ATOMIC_WRITEto support atomic writes on compatible VFS implementations. - IndexedDB fileystem: Add
writeAutomaticallyoption. When disabled, writes are not automatically persisted and one needs to callflushmanually. This explicit control can make database access more efficient in some cases. - IndexedDB filesystem: Restructure IndexedDB code to use much fewer transactions, improving performance.
- Update SQLite to 3.53.3, SQLite3 Multiple Ciphers to 2.3.6 and SQLCipher to 4.17.0.
- Mark a few functions as
isLeaf, reducing the native overhead of calling them. - Reset statements after
executeandselect. - Allow custom download URLs for pre-compiled binaries through the
url_patternuser-define.
- Add
-
3.3.401 Jul 2026 -
3.3.312 Jun 2026Release notes
Open source →- Restore support for SQLCipher (thanks to @davidmartos96!).
- Fix crash when loading IndexedDB databases with blocks past the file length (#380).
- Don't uninstall update hooks when closing databases if no update hooks were installed by this package.
-
3.3.226 May 2026Release notes
Open source →- Support
package:native_toolchain_cversions0.18.xand0.19.x. - Support
hooksversions2.x. - Upgrade to SQLite version 3.53.1.
- Allow disabling
BigIntsupport via-Dsqlite3.dartbigints=false, which can be used to reduce code size on the web if nothing else usesBigIntvalues.
- Support
-
3.3.111 Apr 2026Release notes
Open source →- Avoid memory leaks when
tempDirectoryis set multiple times. - Update to SQLite 3.53.0 and SQLite3 Multiple Ciphers version 2.3.3.
- Avoid memory leaks when
-
3.3.004 Apr 2026Release notes
Open source →- Web: Add
WasmModuleLoaderAPI to customize how WebAssembly modules are loaded. - Hook: Improve error message for failing downloads.
- Web: Add
-
3.2.010 Mar 2026Release notes
Open source →- Add
package:sqlite3/unstable/ffi_bindings.dartproviding low-level access to generatedlibsqlite3bindings. - Add
PreparedStatement.leakto transfer ownership of a prepared statement into native code. - Add
Database.statementFromPointer, which can be used to access a statement prepared in native code from Dart.
- Add
-
3.1.708 Mar 2026 -
3.1.615 Feb 2026Release notes
Open source →- Expose the address of
sqlite3_close_v2as static field onSqlite3class. - Allow wrapping databases without closing them with the
borrowedparameter onSqlite3.fromPointer. - Add
Database.leak(), which extracts asqlite3*pointer and disables finalizers.
- Expose the address of
-
3.1.511 Feb 2026Release notes
Open source →- Build hook: Ensure we use consistent filenames to fix issues on Apple platforms.
-
3.1.422 Jan 2026Release notes
Open source →- Build hook: Fix paths not resolving on Windows when building from source.
-
3.1.311 Jan 2026 -
3.1.231 Dec 2025Release notes
Open source →Database.select()will now throw an exception if the SQL string contains invalid text after the first statement.- Build hook: Support OS-specific names when using
source: system.
-
3.1.130 Nov 2025Release notes
Open source →- Hooks: Respect
HTTPS_PROXYand related environment variables when downloading SQLite (requires Dart 3.11 or later). - Update SQLite to version 3.51.1.
- Hooks: Respect
-
3.1.023 Nov 2025Release notes
Open source →- Build hook: Allow using
namekey withsource: systemto load SQLite libraries under a different name (e.g.name: sqlcipherto load SQLCipher). - Wasm: Fix an internal memory corruption issue when more than 16 Dart handles are referenced from C.
- Build hook: Allow using
-
3.0.114 Nov 2025Release notes
Open source →- Build hook: Use clang from XCode when pre-compiling SQLite for iOS and macOS.
-
3.0.013 Nov 2025Release notes
Open source →- Breaking change: Use build hooks to load
SQLite instead of
DynamicLibrary.- The SQLite library can only be customized with user defines.
- You should drop your dependencies on
sqlite3_flutter_libsandsqlcipher_flutter_libswhen upgrading. - You can also remove dependencies on
sqlite3_native_assets, since that package is now part ofpackage:sqlite3.
- Breaking change: Parameters to
SqliteExceptions are now named. - Deprecated
dispose()onCommonDatabaseandCommonPreparedStatement. Useclose()instead. - On native platforms, use native finalizers to reliably clear statements and databases.
- On the web, use regular finalizers more consistently.
- Refactor binding text and blob values to reduce the chance of memory leaks.
- On the web, use
externrefs to call Dart functions from compiled WebAssembly sources. - Add
busyHandlersetter to install a customsqlite3_busy_handleron databases.
- Breaking change: Use build hooks to load
SQLite instead of
-
3.0.0-beta.201 Nov 2025 pre-releaseNothing published for this version
-
3.0.0-beta.131 Oct 2025 pre-releaseNothing published for this version
-
3.0.0-beta.021 Oct 2025 pre-releaseNothing published for this version
-
2.9.430 Oct 2025Release notes
Open source →SimpleOpfsFileSystem: Allow opening withreadwrite-unsafe, which can be used to implement multi-tab OPFS databases on Chrome with an outer locking scheme.
-
2.9.311 Oct 2025 -
2.9.208 Oct 2025Release notes
Open source →- Fix a bug introduced in version
2.9.1where the SQLite framework provided bysqlite3_flutter_libswould not load correctly on iOS.
- Fix a bug introduced in version
-
2.9.102 Oct 2025Release notes
Open source →- Check for error codes when binding values to prepared statements.
- Flutter: Fix loading SwiftPM libraries from
sqlite3_flutter_libs.
-
2.9.007 Aug 2025Release notes
Open source →- Add
CommonDatabase.updatesSync, a synchronous variant of the updates stream.
- Add
-
2.8.027 Jul 2025Release notes
Open source →- Support creating changesets and patchsets via the session extension.
- Add the
SubtypedValueextension type to allow returning values with a subtype. - Add the
subtypeOfmethod to theSqliteArgumentsinterface passed to user-defined functions. It returns the subtype assigned to an argument. - Web: Refactor SQLite bindings to make them easier for compilers to optimize.
-
2.7.715 Jul 2025Release notes
Open source →jsonbcodec: Refuse to encode NaN values since recent SQLite versions reject them.
-
2.7.622 May 2025Release notes
Open source →- Export
package:sqlite3/native_assets.dart, making it easier for libraries to support both the regularsqlite3getter and the upcomingsqlite3NativeAssetsvariant. - Fix dereferencing null pointer when reading file names for temporary files in native VFS implementation.
- Export
-
2.7.507 Mar 2025Release notes
Open source →- On Windows, try loading
winsqlite3.dllas a fallback if loadingsqlite3.dllfails.
- On Windows, try loading
-
2.7.416 Feb 2025Release notes
Open source →- Prepare support for accessing SQLite through native assets. This is available
as a preview through
package:sqlite3_native_assets.
- Prepare support for accessing SQLite through native assets. This is available
as a preview through
-
2.7.308 Feb 2025Release notes
Open source →- Web: Support
localtimedatetime modifier in SQLite. - Introduce topics to dartdoc documentation.
- Report locations of syntax errors in
SqliteException.
- Web: Support
-
2.7.221 Jan 2025Release notes
Open source →- Web: Fix update events not being delivered in some shared worker setups.
-
2.7.120 Jan 2025Release notes
Open source →- Web: Fix a crash when using version
2.7.0of this package with an older WebAssembly bundle. Note: Version2.7.0has been retracted from pub.dev for this reason.
- Web: Fix a crash when using version
-
2.7.020 Jan 2025 withdrawnRelease notes
Open source →- Add support for commit and rollback hooks as well as a predicate that can revert transactions. Thanks to @jackd!
-
2.6.117 Jan 2025Release notes
Open source →- Fix out-of-bound reads in the
xWriteimplementation of the OPFS-locks based file-system implementation when writing more than 64 KiB in one operation. - Support SQLite libraries compiled with
SQLITE_OMIT_AUTOINIT.
- Fix out-of-bound reads in the
-
2.6.011 Jan 2025Release notes
Open source →- Add
SimpleOpfsFileSystem.deleteFromStorageto delete OPFS-based file systems. - Add
jsonb, a DartCodecconverting Dart object from and to SQLiteJSONBvalues. - Experimentally support encryption on the web through SQLite Multiple Ciphers. The readme provides more information on how to use encryption on the web.
- Add
-
2.5.024 Nov 2024Release notes
Open source →- Allow registering custom virtual file systems on all platforms. Previously, this was only supported on the web.
- IndexedDB file system: Store
ArrayBuffers instead ofBlobs when it looks like storing blobs would cause issues.
-
2.4.721 Oct 2024Release notes
Open source →- Web: Improve performance of in-memory and IndexedDB file system implementations.
-
2.4.612 Aug 2024Release notes
Open source →- WebAssembly: Call
_initializefunction of sqlite3 module if one is present. - Support version 1.0.0 of
package:web.
- WebAssembly: Call
-
2.4.526 Jul 2024Release notes
Open source →- Fix a bug in the OPFS-locks implementation causing a deadlock when the
xSleepVFS call is issued. - Fix selecting large integers (being represented as a
BigIntin Dart) not working when compiled with dartdevc.
- Fix a bug in the OPFS-locks implementation causing a deadlock when the
-
2.4.423 Jun 2024Release notes
Open source →- Add a temporary workaround for a Dart bug causing spurious exceptions when databases are closed and a debugger is attached.
-
2.4.310 May 2024Release notes
Open source →- Migrate away from legacy web APIs:
dart:html,dart:js,dart:indexeddbandpackage:jsare no longer imported from this package. - Experimentally support being compiled to WebAssembly. Strong caveats apply, please check #230 before relying on this!
- Migrate away from legacy web APIs:
-
2.4.203 Apr 2024Release notes
Open source →- Fix string and blob arguments to prepared statements never being deallocated (#225).
-
2.4.102 Apr 2024 withdrawnNothing published for this version
-
2.4.1+102 Apr 2024Release notes
Open source →- Allow version
0.7.xof thejspackage. - Reduce size of
sqlite3.wasmbundle by removing symbols not referenced in Dart.
- Allow version
-
2.4.013 Feb 2024Release notes
Open source →- Add
isReadOnlyandisExplaingetters to prepared statements. - Set
NativeCallable.keepIsolateAlivetofalsefor callables managed by this package.
- Add
-
2.3.021 Dec 2023Release notes
Open source →- Add the
autocommitgetter on databases wrappingsqlite3_get_autocommit. - Improve the error message in the exception when opening a database fails.
- Add the
-
2.2.004 Dec 2023Release notes
Open source →- Add
updatedRowsgetter to eventually replacegetUpdatedRows()method. - Clarify documentation on
lastInsertRowIdandupdatedRows. - Allow customizing the amount of pages to lock at a time in
backup. A larger amount will result in better backup performance. - Use
NativeCallables for user-defined functions, collations and update streams.
- Add
-
2.1.027 Jul 2023 -
2.0.017 Jun 2023Release notes
Open source →- Breaking: The WASM implementation no longer registers a default virtual
file system. Instead,
registerVirtualFileSystemneeds to be used to add desired file system implementations. - Breaking: Fix a typo,
CommmonSqlite3is now calledCommonSqlite3. - Breaking: Introduce class modifiers on classes of this package that aren't meant to be extended or implemented by users.
- Add
PreparedStatement.reset(). - Add the
CustomStatementParameterclass which can be passed as a statement parameter with a customsqlite3_bind_*call. - Add the
StatementParametersclass andexecuteWith/selectWithmethods onCommonPreparedStatement. They can be used to control whether values are bound by index or by name. TheselectMapandexecuteMapmethods have been deprecated.
- Breaking: The WASM implementation no longer registers a default virtual
file system. Instead,
-
2.0.0-dev.313 Jun 2023 pre-releaseNothing published for this version
-
2.0.0-dev.204 Jun 2023 pre-releaseNothing published for this version
-
2.0.0-dev.131 May 2023 pre-releaseNothing published for this version
-
2.0.0-dev.017 May 2023 pre-releaseNothing published for this version
-
1.11.202 Jun 2023Release notes
Open source →- Report correct column names for statements that have been re-compiled due to schema changes.
-
1.11.110 May 2023Release notes
Open source →- Fix user-defined functions returning text not supporting multi-byte utf8 characters.
-
1.11.009 Apr 2023Release notes
Open source →- Add
WasmSqlite3.loadFromUrlwhich uses a streamingfetch()request to load the sqlite3 WASM binary. - Add
OpfsFileSystem, a file system implementation for the WASM library that is based on the synchronous File System Access API. - The WASM version of sqlite3 used by this library is now compiled with
-Ozinstead of-Ofast.
- Add