fugue-bench
text-diff
fugue-bench | text-diff | |
---|---|---|
4 | 2 | |
3 | 6 | |
- | - | |
5.3 | 10.0 | |
about 1 year ago | over 1 year ago | |
JavaScript | Python | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fugue-bench
-
CRDT Concepts: Causal Trees
For a different tree-based CRDT, I did a head-to-head comparison of implementations that use a node-per-char (Fugue Simple) vs runs (Fugue), with results in Section 5 of this paper: https://arxiv.org/abs/2305.00583
- The Art of the Fugue: Minimizing Interleaving in Collaborative Text Editing
- A Critical Examination of “The Art of the Fugue” Paper in Relation to OT
-
CRDT-richtext: Rust implementation of Peritext and Fugue
The source code of the benchmark is available here https://github.com/zxch3n/fugue-bench
text-diff
-
CRDT-richtext: Rust implementation of Peritext and Fugue
https://github.com/samsquire/multiversion-concurrency-contro...
And I implemented a 3 way text diff with myers algorithm based on https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm...
https://github.com/samsquire/text-diff
I implemented an eventually consistent mesh protocol that uses timestamps to provide last write wins
-
Visualizing Diffs The Myers difference algorithm
I implemented a three direction diff at https://github.com/samsquire/text-diff
Conflict detection is fairly hard to get right, I can detect overlapping ranges to colour the output green or red.
Using this guide https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm...
What are some alternatives?
electric_dart - A Dart implementation for Electric (electric-sql.com).
electric - Local-first sync layer for web and mobile apps. Build reactive, realtime, local-first apps directly on Postgres.
yjs-pg-test - Test combining yjs and PostgreSQL using plv8 and plv8ify
pg_crdt - POC CRDT support in Postgres
cr-sqlite - Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite
yjs-sqlite-test - Test combining yjs and sqlite wasm
eventually-consistent-mesh - an attempt to create an asynchronously replicated append only eventually consistent data protocol