Kevin Jahns

@dmonad

@DadaMonad

@y-js

Operational Transformation

Rick

Morty

Insert 'A' at pos 0

Insert 'B' at pos 1

Insert 'B' at pos 0

Insert 'A' at pos 0

"AB"

"AB"

Operational Transformation

Rick

Jerry

"AB"

"BA"

Morty

"BA"

"A", 0

"A", 0

"B", 0

"A", 0

"B", 0

"B", 0

Yjs

A

B

D

E

C

(CRDT)

"ABCD"

  • y-websockets

  • y-webrtc

  • y-xmpp

  • y-ipfs

Connectors

Demo: webrtc

  • y-indexedb

Persisting Changes

Browser

  • y-redis

  • y-leveldb

Node

Demo: y-indexeddb + y-redis

Shared Types

y-array

  • array.insert(0, [1, {}, 'string'])
  • array.observe(event => {..})

y-map

  • map.set('key', 'value')
  • map.observe(event => {..})

y-text

  • bind to rich text editors (Quill)

y-xml

  • bind to the dom

y-richtext

  • bind to textarea, text editors (ace, codemirror, monaco)

Demo: Dom Binding

y-js.org

Share Anything!

More Demos:

@dmonad

@DadaMonad

codocs.y-js.org

Contact:

Kevin Jahns

By Kevin Jahns

Kevin Jahns

  • 618