pg_crdt VS text-diff

Compare pg_crdt vs text-diff and see what are their differences.

pg_crdt

POC CRDT support in Postgres (by supabase)

text-diff

a python implementation of diff3 and three way merge (by samsquire)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
pg_crdt text-diff
3 2
366 6
0.0% -
10.0 10.0
over 1 year ago over 1 year ago
Rust Python
PostgreSQL License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

pg_crdt

Posts with mentions or reviews of pg_crdt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-18.
  • CRDT-richtext: Rust implementation of Peritext and Fugue
    17 projects | news.ycombinator.com | 18 May 2023
    Cool, I'll check out your repos. Supabase also as Postgres CRDT (https://github.com/supabase/pg_crdt).

    But, in general, I think searching in and across documents and database storage is going to a thorny problem even with existing, hyper-optimized CRDT algorithms. For example, if you just store your Yjs document as a binary blob in a Postgres column, Postgres becomes the bottleneck and all the fancy range-tree or b-tree optimizations are no longer that helpful on the server. Plus, it'd be great to have an document edit just be a tiny insert into the database that can be streamed to other clients rather than a big row update.

    This all may because the focus of CRDTs seems to be rooted in a fully decentralized, P2P system but many developers want collaborative text editing in a more traditional client-server model.

  • A Yjs provider that uses Supabase Realtime for synchronization. Feedback / suggestions welcome.
    2 projects | /r/Supabase | 5 Feb 2023
    I'm part of the Supabase Realtime team. Thanks for doing this! We've been wanting to do it internally ever since launching Broadcast. We've also been experimenting with what a very integrated CRDT solution looks like (e.g. pg_crdt).
  • Show HN: Pg_CRDT – an experimental CRDT extension for Postgres
    4 projects | news.ycombinator.com | 10 Dec 2022
    This is an experimental extension for CRDTs, `pg_crdt`[0]. It supports Yjs/Yrs and Automerge.

    The linked blog post describes how we're thinking about this extension in a Supabase context. Ideally this "Show HN" generates some discussion/interest, both here and in the github discussions [1].

    I want to emphasise this part from the blog post[2]: "pg_crdt has not been released onto the Supabase platform (and it may never be). We’re considering many options for offline-sync/support and, while CRDTs will undoubtedly factor in, we’re not sure if this is the right approach."

    [0] GitHub repo: https://github.com/supabase/pg_crdt

    [1] Discussions: https://github.com/supabase/pg_crdt/discussions

    [2] Blog post: https://supabase.com/blog/postgres-crdt

text-diff

Posts with mentions or reviews of text-diff. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-18.
  • CRDT-richtext: Rust implementation of Peritext and Fugue
    17 projects | news.ycombinator.com | 18 May 2023
    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
    3 projects | news.ycombinator.com | 3 Nov 2022
    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?

When comparing pg_crdt and text-diff you can also consider the following projects:

electric - Local-first sync layer for web and mobile apps. Build reactive, realtime, local-first apps directly on Postgres.

electric_dart - A Dart implementation for Electric (electric-sql.com).

fugue-bench - Fugue list CRDT implementations and benchmarks

multiversion-concurrency-contro

yjs-pg-test - Test combining yjs and PostgreSQL using plv8 and plv8ify

crdt-benchmarks - A collection of CRDT benchmarks

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