From 28ccd5e0dda2c819c8c96e534b88714f6322de5c Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Tue, 21 Nov 2023 19:55:29 +0100 Subject: [PATCH] add providers (also mention some y-crdt based providers) --- README.md | 67 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 95ce9e29..97e5557a 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,19 @@ and storing shared data for offline usage is quite a hassle. **Providers** manage all that for you and are the perfect starting point for your collaborative app. +> This list of providers is incomplete. Please open PRs to add your providers to +> this list! + +#### Connection Providers +
+
y-websocket
+
+A module that contains a simple websocket backend and a websocket client that +connects to that backend. The backend can be extended to persist updates in a +leveldb database. y-sweet and ypy-websocket (see below) are +compatible to the y-wesocket protocol. +
y-webrtc
Propagates document updates peer-to-peer using WebRTC. The peers exchange @@ -119,17 +131,22 @@ are available. Communication over the signaling servers can be encrypted by providing a shared secret, keeping the connection information and the shared document private.
-
y-websocket
+
@liveblocks/yjs
-A module that contains a simple websocket backend and a websocket client that -connects to that backend. The backend can be extended to persist updates in a -leveldb database. +Liveblocks Yjs provides a fully +hosted WebSocket infrastructure and persisted data store for Yjs +documents. No configuration or maintenance is required. It also features +Yjs webhook events, REST API to read and update Yjs documents, and a +browser DevTools extension.
-
y-indexeddb
+
y-sweet
-Efficiently persists document updates to the browsers indexeddb database. -The document is immediately available and only diffs need to be synced through the -network provider. +A standalone yjs server with persistence to S3 or filesystem. They offer a +cloud service as well. +
+
PartyKit
+
+Cloud service for building multiplayer apps.
y-libp2p
@@ -144,14 +161,6 @@ Also includes a peer-sync mechanism to catch up on missed updates. an append-only log of CRDT local updates (hypercore). Multifeed manages and sync hypercores and y-dat listens to changes and applies them to the Yjs document.
-
@liveblocks/yjs
-
-Liveblocks Yjs provides a fully -hosted WebSocket infrastructure and persisted data store for Yjs -documents. No configuration or maintenance is required. It also features -Yjs webhook events, REST API to read and update Yjs documents, and a -browser DevTools extension. -
Matrix-CRDT
Use Matrix as an off-the-shelf backend for @@ -160,17 +169,37 @@ Use Matrix as transport and storage of Yjs updates, so you can focus building your client app and Matrix can provide powerful features like Authentication, Authorization, Federation, hosting (self-hosting or SaaS) and even End-to-End Encryption (E2EE). -
+ +
yrb-actioncable
+
+An ActionCable companion for Yjs clients. There is a fitting +redis extension as well. +
+
ypy-websocket
+
+Websocket backend, written in Python. +
+
+ +#### Persistence Providers + +
+
y-indexeddb
+
+Efficiently persists document updates to the browsers indexeddb database. +The document is immediately available and only diffs need to be synced through the +network provider. +
y-mongodb-provider
Adds persistent storage to a server with MongoDB. Can be used with the y-websocket provider. -
+
@toeverything/y-indexeddb
Like y-indexeddb, but with sub-documents support and fully TypeScript. -
+
# Ports