{"repo":"cachapa/sql_crdt","free":true,"listed":false,"github":"https://github.com/cachapa/sql_crdt","clone":"git clone https://github.com/cachapa/sql_crdt.git","description":"Dart implementation of Conflict-free Replicated Data Types (CRDTs) using SQL databases","language":"Dart","stars":91,"topics":["crdt","database","flutter","sql","sqlite","sqlite3","dart","postgres","postgresql"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Dart implementation of Conflict-free Replicated Data Types (CRDTs) using SQL databases. This project is heavily influenced by James Long's talk CRTDs for Mortals and includes a Dart-native implementation of Hybrid Local Clocks (HLC) based on the paper Logical Physical Clocks and Consistent Snapshots in Globally Distributed Databases. sql crdt is based on crdt and the learnings from Libra, StoryArk and tudo. This package is abstract and implements the base functionality for CRDTs backed by a relational database. Check sqlite crdt and postgres crdt for usable implementations. See also tudo for a real-world FOSS implementation. This package is compatible with crdt sync, a turnkey approach for real-time network synchronization of CRDT nodes. Notes sql crdt is not an ORM. The API is essentially that of a plain old SQL database with a few behavioural changes: Every table gets 3 columns automatically added: is deleted , hlc , and modified . Deleted records aren't actually removed but rather flagged in the is deleted column. A reactive watch method to subscribe to database queries. Convenience methods getChangeset and merge inherited from the crdt package to sync with remote nodes. ⚠ Because deleted records are only flagged as deleted, they may need to be sanitized in order to be compliant with GDPR and similar legislation. API The API is intentionally kept simple with a few methods: execute to run non-select SQL queries, e.g. inserts, updates, etc. query to perform a one-time query.","default_branch":null,"files":null,"tree":[],"storefront":"/r/cachapa","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/cachapa/sql_crdt/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}