Decide data layer
Closed this issue · 4 comments
0chroma commented
Potential things that could be used:
- Custom system using off-the-shelf libraries/storage engines
- https://github.com/redwood/redwood (would need Rust bindings)
- https://docs.gnunet.org/handbook/gnunet.html#Key-Concepts
0chroma commented
commented on this in the hopes of finding out more info -> redwood/redwood#109
0chroma commented
https://www.gnunet.org/en/about.html look into this too
0chroma commented
Some updates on this, since it's been a while:
- Gnunet seems like an extremely good fit on paper since it includes a lot of great features, but:
- some aspects of it use proof-of-work (NSE and Revocation) which wouldn't work well on mobile apps
- doesn't have a huge community around it, unsure of how stable it is
- I wrote to their mailing list about some of these things, if I don't get a response it's a bad sign
- libp2p seems to be the best in terms of community support and research, but I'd have to implement things like auth, privacy transports, and messaging that gnunet provides for free (maybe there's a library for this?)
- Automerge-rs and yrs can provide the data sync layer, yrs seems to be further along in development
My research on this is like 85% done, just need to make the final decision between Gnunet and libp2p
0chroma commented
After doing a lot of reading on the topic, including the recent ecosystem review written by bluesky contributors, I've decided to stick with yrs and libp2p. It seems to have the best community support for the use case.