Dart implementation of Conflict-free Replicated Data Types (CRDTs) providing Sqflite API. Based on work by Daniel Cachapa
The scope of this implementation is to provide an API to be used in drift_crdt.
This package implements sql_crdt.
Awaiting async functions is extremely important and not doing so can result in all sorts of weird behaviour.
You can avoid them by activating the unawaited_futures
linter warning in analysis_options.yaml:
linter:
rules:
unawaited_futures: true
This package uses sqflite. There's a bit of extra setup necessary depending on where you intend to run your code:
synchroflite
uses recent Sqlite features that may not be available in every system's embedded libraries.
To get around this, import the sqlite3_flutter_libs package into your project:
sqlite3_flutter_libs: ^0.5.12
On the desktop and server, Sqflite uses the system libraries so make sure those are installed.
On Debian, Raspbian, Ubuntu, etc:
sudo apt install libsqlite3 libsqlite3-dev
On Fedora:
sudo dnf install sqlite-devel
Otherwise check the instructions on sqflite_common_ffi.
This package has experimental support for Flutter Web, thanks to sqflite_common_ffi_web.
In order to use this feature you'll need to install the Sqlite3 web binaries by running the following command from the project's root:
dart run sqflite_common_ffi_web:setup
Check example.dart for more details.
Please file feature requests and bugs in the issue tracker.
This package does not implement full Sqflite API. It only implements the API needed for drift_crdt
to work. If you need more, please open an issue or a PR.