finds.dev← search

// the find

automerge/automerge-classic

★ 14,698 · JavaScript · MIT · updated Mar 2023

A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.

The original pure-JavaScript implementation of Automerge, a CRDT library for building collaborative apps where concurrent edits to a shared document automatically merge without conflicts. It's been deprecated — the team rewrote it in Rust (automerge/automerge) and all active development is there. This repo is effectively a museum piece.

The architecture split between frontend and backend modules is clean and made the Rust rewrite tractable. The test suite is substantial — fuzz tests, sync tests, columnar encoding tests — covering the hard edge cases in CRDT merging. The columnar encoding in backend/columnar.js was a real performance win over the naive approach and informed the Rust design.

Deprecated — the README says so in the first line. Last real push was March 2023 and no fixes are coming. Pure-JS CRDT is genuinely slow at scale; this is exactly why the rewrite happened, so adopting this version means inheriting that perf ceiling. The TypeScript types live in a separate @types directory and are incomplete — you'll hit gaps on anything non-trivial.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →