From 87b7d3e9515d82c34dc347740945297e7fc4217d Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Wed, 23 Aug 2023 15:42:48 +0200 Subject: [PATCH 1/4] add Yjs-compatible ports to documentation --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index e1ee0903..7103c666 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ on Yjs. [![Become a Sponsor](https://img.shields.io/static/v1?label=Become%20a%2 * [Overview](#Overview) * [Bindings](#Bindings) * [Providers](#Providers) + * [Ports](#Ports) * [Getting Started](#Getting-Started) * [API](#API) * [Shared Types](#Shared-Types) @@ -153,6 +154,22 @@ y-websocket provider. +# Ports + +There are several Yjs-compatible ports to other programming languages. + +* [y-octo](https://github.com/toeverything/y-octo) - Rust implementation by +Affine +* [y-crdt](https://github.com/y-crdt/y-crdt) - Rust implementation with multiple +language bindings to other languages + * [yrs](https://github.com/y-crdt/y-crdt/tree/main/yrs) - Rust interface + * [ypy](https://github.com/y-crdt/ypy) - Python binding + * [yrb](https://github.com/y-crdt/yrb) - Ruby binding + * [yrb](https://github.com/y-crdt/yswift) - Swift binding + * [yffi](https://github.com/y-crdt/y-crdt/tree/main/yffi) - C-FFI + * [ywasm](https://github.com/y-crdt/y-crdt/tree/main/ywasm) - WASM binding +* [ycs](https://github.com/yjs/ycs) - .Net compatible C# implementation. + ## Getting Started Install Yjs and a provider with your favorite package manager: From bd867cb1610af8b56bed7d98db14c86251a460bd Mon Sep 17 00:00:00 2001 From: Akshay Kumar Date: Wed, 23 Aug 2023 19:31:58 +0530 Subject: [PATCH 2/4] add oorja to who is using yjs --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7103c666..b3899457 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,8 @@ on Yjs. [![Become a Sponsor](https://img.shields.io/static/v1?label=Become%20a%2 sharing analyses, documentation, spreadsheets, and dashboards. * [Nosgestesclimat](https://nosgestesclimat.fr/groupe) The french carbon footprint calculator has a group P2P mode based on yjs +* [oorja.io](https://oorja.io) Online meeting spaces extensible with collaborative apps, end-to-end encrypted. + ## Table of Contents From 61abf3a1db4a0edcb3b39f7acb28bf6893f1bc7b Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Wed, 23 Aug 2023 09:25:18 -0500 Subject: [PATCH 3/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7103c666..6305c3b5 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,7 @@ y-websocket provider. There are several Yjs-compatible ports to other programming languages. * [y-octo](https://github.com/toeverything/y-octo) - Rust implementation by -Affine +[AFFiNE](https://affine.pro) * [y-crdt](https://github.com/y-crdt/y-crdt) - Rust implementation with multiple language bindings to other languages * [yrs](https://github.com/y-crdt/y-crdt/tree/main/yrs) - Rust interface From 97c09a6cca0e1bf5c7196714a6660de497d15e94 Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Thu, 24 Aug 2023 13:52:38 +0200 Subject: [PATCH 4/4] fix #509 --- src/utils/UndoManager.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/UndoManager.js b/src/utils/UndoManager.js index 746d0f01..f6f13ee5 100644 --- a/src/utils/UndoManager.js +++ b/src/utils/UndoManager.js @@ -15,6 +15,7 @@ import { import * as time from 'lib0/time' import * as array from 'lib0/array' +import * as logging from 'lib0/logging' import { Observable } from 'lib0/observable' export class StackItem { @@ -169,6 +170,7 @@ export class UndoManager extends Observable { * @type {Array>} */ this.scope = [] + this.doc = doc this.addToScope(typeScope) this.deleteFilter = deleteFilter trackedOrigins.add(this) @@ -189,7 +191,6 @@ export class UndoManager extends Observable { */ this.undoing = false this.redoing = false - this.doc = doc this.lastChange = 0 this.ignoreRemoteMapChanges = ignoreRemoteMapChanges this.captureTimeout = captureTimeout @@ -263,6 +264,7 @@ export class UndoManager extends Observable { ytypes = array.isArray(ytypes) ? ytypes : [ytypes] ytypes.forEach(ytype => { if (this.scope.every(yt => yt !== ytype)) { + if (ytype.doc !== this.doc) logging.warn('[yjs#509] Not same Y.Doc') // use MultiDocUndoManager instead. also see https://github.com/yjs/yjs/issues/509 this.scope.push(ytype) } })