sharedb
automerge
Our great sponsors
sharedb | automerge | |
---|---|---|
6 | 45 | |
6,001 | 3,110 | |
1.1% | 6.3% | |
7.1 | 9.1 | |
24 days ago | 3 days ago | |
JavaScript | JavaScript | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sharedb
-
Writing Redux Reducers in Rust
Sure! Not sure about rust but I wrote this several years ago: https://github.com/share/sharedb (though now other people maintain it)
-
Is there a lib or a pattern for synchronizing a complex JSON over the network ?
This is called Operational Transformation, and there are a few libraries to help with it. One that looks fairly mature is https://github.com/share/sharedb
-
Reactive Clojure: You don't need a web framework, you need a web language
one that sort of fell by the wayside when Meteor and Ember got popular, was/is Derby.js/ShareDB. https://github.com/derbyjs/derby https://derbyjs.com/ https://github.com/share/sharedb
The LiveView lead resurgence in server side rendering is exciting. Does anyone have any insight as to why ShareDB never really took off?
- [AskJS] Which 3d JS engine should I use for a networked FPS camera that can support up to 32 players on a VPS?
-
online user document sharing?
Rather than implementing your own you might be able to use a library like ShareDB. I think there was another one out there built on the open-sourced Google Wave code, but I don't remember the name.
automerge
- Automerge CRDT
-
Flutter offline
I'm not aware of any usable CRDT implementations for Dart, my plan is to use the flutter_rust_bridge to make use of automerge v2, which is a full CRDT implementation written in Rust that has the advantage of having a very simple API to work with (basically a key/value store).
- Ask HN: What is new in Algorithms / Data Structures these days?
-
Best local database that works on all platforms including web?
Yes. I asked the devs about ideas for this in this ticket and got an interesting response. It's aimed towards server-side handling, but the same ideas apply to local storage as well.
- Show HN: Pg_CRDT – an experimental CRDT extension for Postgres
-
CRDTs: A Beginner's overview for building a collaborative app
There are a lot of implementations of CRDTs out there. In JavaScript, for instance, we have Y.js (https://github.com/yjs/yjs) and automerge (https://github.com/automerge/automerge). There’s also a Y.js demo (https://demos.yjs.dev/prosemirror/prosemirror.html) that allows you to play around with them and have your own collaborative app running in just a few seconds. All messages are exchange via webRTC and manages the state via CRDTs. This can be a great sandbox to understand how CRDTs work and see.
-
Evan Wallace CRDT Algorithms
Anyone unsure of what a CRDT is, this is the perfect intro: https://www.inkandswitch.com/peritext/
The two most widely used CRDT implementations (combining JSON like general purpose types and rich text editing types) are:
- Automerge https://github.com/automerge/automerge
- Yjs https://github.com/yjs/yjs
-
Should I Move From PHP to Node/Express?
For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.
- Maintaining Referential Integrity During Insertions And Deletions
- Muse 2.0
What are some alternatives?
liveblocks - Liveblocks is a platform to ship collaborative features like comments, notifications, text editors in minutes instead of months.
yjs - Shared data types for building collaborative software
Meteor JS - Meteor, the JavaScript App Platform
crdt-benchmarks - A collection of CRDT benchmarks
y-websocket - Websocket Connector for Yjs
inertia-laravel - The Laravel adapter for Inertia.js.
FluidFramework - Library for building distributed, real-time collaborative web applications
imba - 🐤 The friendly full-stack language
slate-yjs - Yjs binding for Slate
hotwire-rails - Use Hotwire in your Ruby on Rails app
SyncedStore - SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.