gritzko / ron

(dated, see the site) Replicated Object Notation, a distributed live data format, golang/ragel lib
http://replicated.cc
Apache License 2.0
360 stars 7 forks source link

How do you use this? #2

Closed bmizerany closed 6 years ago

bmizerany commented 6 years ago

This looks rad! I’ve read the readme and godoc but there isn’t much showing how to use the library. An example showing a simple text editor or collaborative drawing would be rad. Maybe you already have examples of this in use elsewhere?

The deepdive into the wire protocol and format is awesome though. :)

gritzko commented 6 years ago

Thanks!

This is exactly a protocol spec and a parser. It also has two example data types: LWW and RGA. LWW is more or less what Cassandra is using. I may also add Yeschenko-style counters if I have time. The RGA is actually close to Causal Trees than to Replicated Growable Arrays by Roh et al (I published that in 2010, 2014).

This model was in use in some deployed projects, so I am rather familiar with ins and outs. But, it was never defined as a formal language before. To actually use it, you have to bolt it on.

For a browser-based collaborative editor, the essential parts are:

  1. a JavaScript parser (https://github.com/gritzko/swarm-ron, needs a revisit),
  2. a WebStorage/IndexedDB/WebSocket caching client implementation,
  3. a Go WebSocket server,
  4. a back-end database speaking RON (key-value is enough),
  5. the editor per se (likely Quill or Prosemirror, plus the bindings).

This year, I may release 4, 1 and probably a bunch of other parsers (Java, C++, etc), depending on circumstances. Not being a (massively VC-funded) company, I cannot aim higher.

bmizerany commented 6 years ago

Thank you for the insight. This is rad stuff. :) On Mon, Nov 13, 2017 at 7:16 AM Victor Grishchenko notifications@github.com wrote:

Closed #2 https://github.com/gritzko/ron/issues/2.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gritzko/ron/issues/2#event-1338908104, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAALmYtOIAwuJ8tmVtE64V7ysAhatcCks5s2F1pgaJpZM4QWljv .