Merge branch 'main' of github.com:yjs/yjs
This commit is contained in:
+2
-2
@@ -153,7 +153,7 @@ an incremental document updates that allows clients to sync with each other.
|
|||||||
The update object is an Uint8Array that efficiently encodes `Item` objects and
|
The update object is an Uint8Array that efficiently encodes `Item` objects and
|
||||||
the delete set.
|
the delete set.
|
||||||
* `state vector`: A state vector defines the know state of each user (a set of
|
* `state vector`: A state vector defines the know state of each user (a set of
|
||||||
tubles `(client, clock)`). This object is also efficiently encoded as a
|
tuples `(client, clock)`). This object is also efficiently encoded as a
|
||||||
Uint8Array.
|
Uint8Array.
|
||||||
|
|
||||||
The client can ask a remote client for missing document updates by sending
|
The client can ask a remote client for missing document updates by sending
|
||||||
@@ -168,7 +168,7 @@ An implementation of the syncing process is in
|
|||||||
## Snapshots
|
## Snapshots
|
||||||
|
|
||||||
A snapshot can be used to restore an old document state. It is a `state vector`
|
A snapshot can be used to restore an old document state. It is a `state vector`
|
||||||
\+ `delete set`. I client can restore an old document state by iterating through
|
\+ `delete set`. A client can restore an old document state by iterating through
|
||||||
the sequence CRDT and ignoring all Items that have an `id.clock >
|
the sequence CRDT and ignoring all Items that have an `id.clock >
|
||||||
stateVector[id.client].clock`. Instead of using `item.deleted` the client will
|
stateVector[id.client].clock`. Instead of using `item.deleted` the client will
|
||||||
use the delete set to find out if an item was deleted or not.
|
use the delete set to find out if an item was deleted or not.
|
||||||
|
|||||||
@@ -56,14 +56,10 @@ Sponsorship also comes with special perks! [ A collaborative note taking app. :star2:
|
* [Input](https://input.com/) A collaborative note taking app. :star2:
|
||||||
* [Room.sh](https://room.sh/) A meeting application with integrated
|
* [Room.sh](https://room.sh/) A meeting application with integrated
|
||||||
collaborative drawing, editing, and coding tools. :star:
|
collaborative drawing, editing, and coding tools. :star:
|
||||||
* [https://coronavirustechhandbook.com/](https://coronavirustechhandbook.com/)
|
|
||||||
A collaborative wiki that is edited by thousands of different people to work
|
|
||||||
on a rapid and sophisticated response to the coronavirus outbreak and
|
|
||||||
subsequent impacts. :star:
|
|
||||||
* [Nimbus Note](https://nimbusweb.me/note.php) A note-taking app designed by
|
* [Nimbus Note](https://nimbusweb.me/note.php) A note-taking app designed by
|
||||||
Nimbus Web.
|
Nimbus Web.
|
||||||
* [JoeDocs](https://joedocs.com/) An open collaborative wiki.
|
* [JoeDocs](https://joedocs.com/) An open collaborative wiki.
|
||||||
* [Pluxbox RadioManager](https://pluxbox.com/) A web-based app to
|
* [Pluxbox RadioManager](https://getradiomanager.com/) A web-based app to
|
||||||
collaboratively organize radio broadcasts.
|
collaboratively organize radio broadcasts.
|
||||||
* [Alldone](https://alldone.app/) A next-gen project management and
|
* [Alldone](https://alldone.app/) A next-gen project management and
|
||||||
collaboration platform.
|
collaboration platform.
|
||||||
@@ -99,7 +95,7 @@ are implemented in separate modules.
|
|||||||
| [Monaco](https://microsoft.github.io/monaco-editor/) | ✔ | [y-monaco](https://github.com/yjs/y-monaco) | [demo](https://demos.yjs.dev/monaco/monaco.html) |
|
| [Monaco](https://microsoft.github.io/monaco-editor/) | ✔ | [y-monaco](https://github.com/yjs/y-monaco) | [demo](https://demos.yjs.dev/monaco/monaco.html) |
|
||||||
| [Slate](https://github.com/ianstormtaylor/slate) | ✔ | [slate-yjs](https://github.com/bitphinix/slate-yjs) | [demo](https://bitphinix.github.io/slate-yjs-example) |
|
| [Slate](https://github.com/ianstormtaylor/slate) | ✔ | [slate-yjs](https://github.com/bitphinix/slate-yjs) | [demo](https://bitphinix.github.io/slate-yjs-example) |
|
||||||
| [valtio](https://github.com/pmndrs/valtio) | | [valtio-yjs](https://github.com/dai-shi/valtio-yjs) | [demo](https://codesandbox.io/s/valtio-yjs-demo-ox3iy) |
|
| [valtio](https://github.com/pmndrs/valtio) | | [valtio-yjs](https://github.com/dai-shi/valtio-yjs) | [demo](https://codesandbox.io/s/valtio-yjs-demo-ox3iy) |
|
||||||
| React / Vue / MobX | | [SyncedStore](https://syncedstore.org) | [demo](https://syncedstore.org/docs/react) |
|
| React / Vue / Svelte / MobX | | [SyncedStore](https://syncedstore.org) | [demo](https://syncedstore.org/docs/react) |
|
||||||
|
|
||||||
### Providers
|
### Providers
|
||||||
|
|
||||||
@@ -141,6 +137,10 @@ Also includes a peer-sync mechanism to catch up on missed updates.
|
|||||||
<a href="https://github.com/kappa-db/multifeed">multifeed</a>. Each client has
|
<a href="https://github.com/kappa-db/multifeed">multifeed</a>. Each client has
|
||||||
an append-only log of CRDT local updates (hypercore). Multifeed manages and sync
|
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.
|
hypercores and y-dat listens to changes and applies them to the Yjs document.
|
||||||
|
</dd>
|
||||||
|
<dt><a href="https://github.com/yousefED/matrix-crdt">Matrix-CRDT</a></dt>
|
||||||
|
<dd>
|
||||||
|
Use <a href="https://www.matrix.org">Matrix</a> as an off-the-shelf backend for Yjs by using the <a href="https://github.com/yousefED/matrix-crdt">MatrixProvider</a>. 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).
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
@@ -980,7 +980,7 @@ undoManager.on('stack-item-popped', event => {
|
|||||||
|
|
||||||
*Conflict-free replicated data types* (CRDT) for collaborative editing are an
|
*Conflict-free replicated data types* (CRDT) for collaborative editing are an
|
||||||
alternative approach to *operational transformation* (OT). A very simple
|
alternative approach to *operational transformation* (OT). A very simple
|
||||||
differenciation between the two approaches is that OT attempts to transform
|
differentiation between the two approaches is that OT attempts to transform
|
||||||
index positions to ensure convergence (all clients end up with the same
|
index positions to ensure convergence (all clients end up with the same
|
||||||
content), while CRDTs use mathematical models that usually do not involve index
|
content), while CRDTs use mathematical models that usually do not involve index
|
||||||
transformations, like linked lists. OT is currently the de-facto standard for
|
transformations, like linked lists. OT is currently the de-facto standard for
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ export class ContentType {
|
|||||||
if (!item.deleted) {
|
if (!item.deleted) {
|
||||||
item.delete(transaction)
|
item.delete(transaction)
|
||||||
} else {
|
} else {
|
||||||
// Whis will be gc'd later and we want to merge it if possible
|
// This will be gc'd later and we want to merge it if possible
|
||||||
// We try to merge all deleted items after each transaction,
|
// We try to merge all deleted items after each transaction,
|
||||||
// but we have no knowledge about that this needs to be merged
|
// but we have no knowledge about that this needs to be merged
|
||||||
// since it is not in transaction.ds. Hence we add it to transaction._mergeStructs
|
// since it is not in transaction.ds. Hence we add it to transaction._mergeStructs
|
||||||
|
|||||||
+1
-1
@@ -289,7 +289,7 @@ export class Item extends AbstractStruct {
|
|||||||
*/
|
*/
|
||||||
this.parentSub = parentSub
|
this.parentSub = parentSub
|
||||||
/**
|
/**
|
||||||
* If this type's effect is reundone this type refers to the type that undid
|
* If this type's effect is redone this type refers to the type that undid
|
||||||
* this operation.
|
* this operation.
|
||||||
* @type {ID | null}
|
* @type {ID | null}
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user