ot.rb
ot.rb copied to clipboard
Nice work!
This looks great, I've been looking for a decent OT implementation to possibly integrate into a web framework I'm working on (voltframework) I'm curious what the status of this is? Is this still a work in progress? Are you using it on anything?
Thanks!
Thanks!
As mentioned in the README, I've currently only ported TextOperation
from OT.js. That is complete, and (as far as my testing so far has gone) seems to be behaving correctly.
I would happily accept pull requests for any of the other operations that are defined by OT.js. Unfortunately, I expect I won't have time to port any that don't line up with my requirements.
I'm a final year student at the University of Edinburgh, and I've put this together as part of my honours project (which concerns collaborative code editing).
Building on this library I have created Collaborate, a gem using ActionCable
to allow collaborative editing of a text document. As you may guess based on the lack of a README or any meaningful documentation, that is still very much a work in progress (although, if you are interested, the dummy app should be functional at the moment). I will aim to write some sort of introduction in the next day or so.
I hope this is helpful - I'd briefly looked at Volt while doing some preliminary research in this area.
@ball-hayden thanks for the info. I'll take a look at Collaborate. A quick intro should be great. I read through the one on OT.js, and have read a few OT papers, so for me its more about how to hook it up. I'm sure I could put it together from the rails project if needed, but an intro would be helpful. Thanks.
Apologies for the delay. I've added a README to Collaborate which I think explains the basic setup.
Thanks a bunch. The way this works is to broadcast the events to every other client, then apply right?
Not quite - the server transforms and applies an incoming operation, and then broadcasts the transformed operation to all other clients.
The idea is based around https://github.com/Operational-Transformation/ot.js/blob/master/lib/server.js, which the author has visualized: https://operational-transformation.github.io/visualization.html
Thanks. I thought the server had to do something. Its been a while since I read any OT papers. :-)
On Tue, Oct 20, 2015 at 2:23 PM, Hayden Ball [email protected] wrote:
Not quite - the server transforms and applies an incoming operation, and then broadcasts the transformed operation to all other clients.
The idea is based around https://github.com/Operational-Transformation/ot.js/blob/master/lib/server.js, which the author has visualized: https://operational-transformation.github.io/visualization.html
— Reply to this email directly or view it on GitHub https://github.com/ball-hayden/ot.rb/issues/1#issuecomment-149691617.