All Projects → y-crdt → y-crdt

y-crdt / y-crdt

Licence: other
Rust port of Yjs

Programming Languages

rust
11053 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
javascript
184084 projects - #8 most used programming language
CMake
9771 projects

Labels

Projects that are alternatives of or similar to y-crdt

Yjs
Shared data types for building collaborative software
Stars: ✭ 5,894 (+590.16%)
Mutual labels:  crdt, yjs
SyncedStore
SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.
Stars: ✭ 1,053 (+23.3%)
Mutual labels:  crdt, yjs
Cpg
CloudI Process Groups
Stars: ✭ 87 (-89.81%)
Mutual labels:  crdt
Redwood
A highly-configurable, distributed, realtime database that manages a state tree shared among many peers.
Stars: ✭ 218 (-74.47%)
Mutual labels:  crdt
Crdt
A Golang implementation of CRDTs.
Stars: ✭ 176 (-79.39%)
Mutual labels:  crdt
Go Orbit Db
Go version of P2P Database on IPFS
Stars: ✭ 119 (-86.07%)
Mutual labels:  crdt
Blindpad
Collaborative text editor (like Google Docs or CoderPad) with integrated semi-anonymizing voice chat intended to help reduce bias in technical communication.
Stars: ✭ 191 (-77.63%)
Mutual labels:  crdt
Cause
An EDN-like CRDT (Causal Tree) for Clojure & ClojureScript that automatically tracks history and resolves conflicts.
Stars: ✭ 68 (-92.04%)
Mutual labels:  crdt
caucus
Realtime Collaborate Editor with Embedded Compiler
Stars: ✭ 278 (-67.45%)
Mutual labels:  yjs
Crdt
CRDT Tutorial for Beginners (a digestible explanation with less math!)
Stars: ✭ 167 (-80.44%)
Mutual labels:  crdt
Crdt Playground
Stars: ✭ 215 (-74.82%)
Mutual labels:  crdt
Js Delta Crdts
Delta State-based CRDTs in Javascript
Stars: ✭ 156 (-81.73%)
Mutual labels:  crdt
Crdts
A library of Conflict-Free Replicated Data Types for JavaScript
Stars: ✭ 143 (-83.26%)
Mutual labels:  crdt
Yorkie
Yorkie is a document store for collaborative applications.
Stars: ✭ 196 (-77.05%)
Mutual labels:  crdt
Wootjs
WOOT model for Scala and JavaScript via Scala.js
Stars: ✭ 99 (-88.41%)
Mutual labels:  crdt
Slate Collaborative
slatejs collaborative plugin & microservice https://slate-collaborative.herokuapp.com/
Stars: ✭ 236 (-72.37%)
Mutual labels:  crdt
Datakernel
Alternative Java platform, built from the ground up - with its own async I/O core and DI. Ultra high-performance, simple and minimalistic - redefines server-side programming, web-development and highload!
Stars: ✭ 87 (-89.81%)
Mutual labels:  crdt
Ff
A distributed note taker and task manager.
Stars: ✭ 149 (-82.55%)
Mutual labels:  crdt
Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+1676.58%)
Mutual labels:  crdt
dynamic-data-and-capabilities
[ARCHIVED] Dynamic Data and Capabilities in IPFS Working Group
Stars: ✭ 57 (-93.33%)
Mutual labels:  crdt

Y CRDT

A collection of Rust libraries oriented around implementing Yjs algorithm and protocol with cross-language and cross-platform support in mind. It aims to maintain behavior and binary protocol compatibility with Yjs, therefore projects using Yjs/Yrs should be able to interoperate with each other.

Project organization:

  • lib0 is a serialization library used for efficient (and fairly fast) data exchange.
  • yrs (read: wires) is a core Rust library, a foundation stone for other projects.
  • yffi (read: wifi) is a wrapper around yrs use to provide a native C foreign function interface. See also: C header file.
  • ywasm is a wrapper around yrs that targets Web Assembly and JavaScript API.

Other projects using yrs:

  • ypy - Python bindings.
  • yrb - Ruby bindings.

Feature parity with Yjs project

  • Supported collaborative types:
  • Text
    • text insertion (with variable offsets including configurable UTF-8, UTF-16 and UTF-32 mappings)
    • embedded elements insertion
    • insertion of formatting attributes
    • observe events and deltas
  • Map
    • insertion, update and removal of primitive JSON-like elements
    • recursive insertion, update and removal of other collaborative elements of any type
    • observe events and deltas
    • deep observe events bubbling up from nested collections
  • Array
    • insertion and removal of primitive JSON-like elements
    • recursive insertion of other collaborative elements of any type
    • observe events and deltas
    • deep observe events bubbling up from nested collections
    • move index positions
  • XmlElement
    • insertion, update and removal of XML attributes
    • insertion, update and removal of XML children nodes
    • observe events and deltas
    • deep observe events bubbling up from nested collections
  • XmlText
    • insertion, update and removal of XML attributes
    • text insertion (with variable offsets including configurable UTF-8, UTF-16 and UTF-32 mappings)
    • observe events and deltas
  • XmlFragment
  • XmlHook (deprecated)
  • Sub documents
  • Transaction origin
  • Undo/redo manager
  • Encoding formats:
    • lib0 v1 encoding
    • lib0 v2 encoding
  • Transaction events:
    • on event update
    • on after transaction

Maintainers

Sponsors

NLNET

Ably

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].