synchroflite 0.1.0 synchroflite: ^0.1.0 copied to clipboard
Dart implementation of Conflict-free Replicated Data Types (CRDTs) using Sqlite
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.
Setup #
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:
Android & iOS #
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
Desktop, Server #
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.
Web #
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
Usage #
Check example.dart for more details.
Features and bugs #
Please file feature requests and bugs in the issue tracker.
NOTE: #
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.