Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crdt lib #13

Open
ghost opened this issue Mar 1, 2018 · 3 comments
Open

Crdt lib #13

ghost opened this issue Mar 1, 2018 · 3 comments

Comments

@ghost
Copy link

ghost commented Mar 1, 2018

Thanks for a good write-up of how your system works. Very readable and clear !

I am interested in this area and have used y.js. it's good but not as comprehensive as your system.

I would like to write a golang version of your system. That will allow it to run on mobiles but also in web browser as JavaScript and webassembly.
Let me know what you think.

Also I think we can also extend the file system to share and sync files stored in the browser in a db. I guess you might be thinking about that for the future ?

Anyway please let me know ..

@rcalfredson
Copy link

Would like please to ask, are you still interested in Golang implementation of technology similar to this?

@sunny-b
Copy link
Contributor

sunny-b commented Oct 30, 2018

Hey @gedw99 and @rcalfredson, thanks for the interest! I'm not sure about the rest of the team but creating a golang CRDT library definitely sounds interesting. I use golang a lot at my current role and can see the benefits of creating a library in it.

I've played around with CRDTs in Go (https://github.com/sunny-b/go_cart/blob/master/crdt.go) but haven't committed to anything. I'd be interested in hearing your ideas for it.

@rcalfredson
Copy link

Thank you for sharing this, @sunny-b! Regarding Golang, the part that interests me the most is the potential of using this language to enable CRDT use on a mobile platform, and in the process, making at least one generic Go library that people could use no matter what functionality they desire.

To give context, I have been working on an application that is derived from your Conclave project, and this is called Daily Page (here is repo and site prototype). This idea uses the DB synching described in the original post above, but, as of yet, no Golang.

Looking forward, I am interested to get a mobile version of it to work as well. That part, honestly, I have not begun to think about very deeply yet, but here are the first steps I would be interested to figure out toward that goal:

  1. To make generic CRDT library in Golang, with no implementation-specific details, which would live in an indepedent repo.
  2. To apply that library to an editor application. As for which editor it would interface with, and even whether an appropriate option exists yet, that is still a mystery. Perhaps to begin with, it would just be some abstract representation of an editor (some sort of API?).

These are my ideas for it, although, to clarify, they are more mid-term or long-term than they are short-term. If there were any part I started right away on it, probably I would go pretty slowly!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants