automerge-classic README

The project's README from github.com/automerge/automerge-classic. As one markdown file: README.md.

Automerge logo

Deprecation Notice

Automerge now has a shiny new implementation at https://github.com/automerge/automerge. This repository is the original pure javascript implementation. All development effort has shifted to the new implementation which is written in Rust and so can easily be ported to other platforms.

Original Readme

💬 Join the Automerge Slack community

Build Status Browser Test Status

Automerge is a library of data structures for building collaborative applications in JavaScript.

Please see automerge.org for documentation.

For a set of extensible examples in TypeScript, see automerge-repo

Setup

If you're using npm, npm install automerge. If you're using yarn, yarn add automerge. Then you can import it with require('automerge') as in the example below (or import * as Automerge from 'automerge' if using ES2015 or TypeScript).

Otherwise, clone this repository, and then you can use the following commands:

Meta

Copyright 2017–2021, the Automerge contributors. Released under the terms of the MIT license (see LICENSE).

automerge-classic (automerge/automerge-classic)

Searching Database…

What is this?Automerge is a JavaScript library implementing a CRDT (Conflict-free Replicated Data Type) — a JSON-like document that multiple users can edit concurrently on their own copies, with all changes merging back together automatically without conflicts.
How do I add it to my project?Install it with `npm install automerge` or `yarn add automerge`, then `require('automerge')` (or `import Automerge from 'automerge'` with ES2015/TypeScript). To work from source instead, clone the repo and run `yarn install`, `yarn test`, and `yarn build` to get a browser bundle in `dist/automerge.js`.
Does it need any backend server or database to work?No — it's a pure client-side JavaScript library with no server requirement, only pulling in small helper packages (fast-sha256, pako, uuid) for hashing and compression.
Is this the version I should actually use today?No — this repo is deprecated. It was the original pure-JavaScript implementation, but all development has moved to a new Rust-based implementation that's easier to port to other platforms.
Does it work without a network connection?Yes — it's built offline-first: each user can keep editing their own local copy with no connectivity, and merges happen automatically once copies are synced back together.
What makes Automerge different from manually resolving merge conflicts?As a CRDT, its data structure is designed so concurrent edits always merge deterministically and automatically — there's no manual conflict resolution step needed, unlike regular merge tools.
Can I use TypeScript with Automerge?Yes — type definitions are bundled (`@types/automerge`), and the separate automerge-repo project provides a fuller set of TypeScript examples built on the newer implementation.
Where should I look instead of this repo?The actively maintained successor is the Rust-based implementation at automerge.org, along with the automerge-repo project; this classic repo is kept around only for reference.
What are similar projects?yjs, gun, rxdb, electric, WatermelonDB, pouchdb, Jantt, git-bug
Creator
automerge
Size
4 MB
Stars
14.7K
Updated
CommitMar 09
Age
9y
Commits · 90 Days