automerge
FluidFramework
| automerge | FluidFramework | |
|---|---|---|
| 51 | 15 | |
| 6,321 | 4,927 | |
| 1.7% | 0.1% | |
| 9.2 | 10.0 | |
| 2 days ago | 3 days ago | |
| JavaScript | TypeScript | |
| MIT License | 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.
automerge
- Automerge
-
Building Collaborative Interfaces: Operational Transforms vs. CRDTs
Automerge
-
Automerge 3.0
It's written in Rust, but JavaScript is the primary friendly interface. https://github.com/automerge/automerge
-
Multi-player Mode is Everywhere, Even in Dev Tools
Of course, you don’t have to code this functionality from scratch! You can also look at open-source software like Yjs, text-crdt, Automerge and so many more. Alternatively, you can check out tools like Liveblocks, Ably, etc. which enable collaborative multi-player features.
- Automerge: JSON-like data structure for building collaborative apps
- Automerge: A library of data structures for building collaborative applications
- 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.
FluidFramework
-
Building a Web-Based Excel Editor: A Comprehensive Guide
Fluid Framework - Microsoft's collaborative development platform
-
Lies I was told about collab editing, Part 1: Algorithms for offline editing
Has anyone tried Microsoft's fluid framework for collaborative editing?
https://github.com/microsoft/FluidFramework
https://fluidframework.com/
- FluidFramework: Build distributed, real-time collaborative web applications
-
Ask HN: What Are You Working on This Year?
Have you seen FluidFramework? It's open source (MIT): https://github.com/microsoft/FluidFramework
I think the first product they're building on it is Loop: https://www.zdnet.com/article/microsoft-introduces-loop-a-ne...
- Ask HN: Apps that are built with Git as the back end?
- Realtime: Multiplayer Edition
- Fluid Framework: Data Sync Reimagined
-
Woe be onto you for using a WebSocket
Full disclosure I work at MSFT and on the fluid framework.
If you are interested in this you may also be interested in the fluid framework, https://github.com/microsoft/FluidFramework
We use websockets and solve a lot of the state management problem called out here by keeping very little state on the server itself. The primary thing on server is a monotonically increasing integer we use to stamp messages, this gives us total order broadcast which we then build upon: https://en.m.wikipedia.org/wiki/Atomic_broadcast
Here are some code pointers if you want to take a look:
The map package is a decent place to look for how we leverage total order broadcast to keep clients in sync in our distributed data structures:
-
Microsoft Launches Google Wave
(Disclosure: Work at Microsoft, but I work in Azure and some open source stuff, not on or directly with Fluid/Office/etc.)
That's just a trademark clause for Microsoft logos and brands. The Fluid Framework itself is [MIT licensed](https://github.com/microsoft/FluidFramework/blob/main/LICENS...) and doesn't require exposing any of those logos/brands when you use it, so the framework itself is fairly open for usage.
I think the main thing that would slow down adoption for Fluid is that the only "production" backend is an Azure service, which isn't part of the open source Fluid Framework. [Other open source backends](https://fluidframework.com/docs/deployment/service-options/) aren't recommended for productions. Until there are some open source ones, I'd assume adoption will be limited to folks in the Azure ecosystem.
-
The Lost Apps of the 80s
Within the context of the Microsoft-verse, Fluid Framework (https://fluidframework.com) is supposed to be solving similar problems in web apps, although I haven't personally played with it.
What are some alternatives?
yjs - Shared data types for building collaborative software
SyncedStore - SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.
y-crdt - Rust port of Yjs
jsynchronous - Jsynchronous.js - Data synchronization for games and real-time web apps.
crdt-benchmarks - A collection of CRDT benchmarks
med - Micro Emacs in D