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…

Что это такое?Automerge — это JavaScript-библиотека, реализующая CRDT (Conflict-free Replicated Data Type) — документ в формате, похожем на JSON, который несколько пользователей могут одновременно редактировать на своих копиях. Все изменения автоматически объединяются без конфликтов.
Как добавить её в проект?Установите библиотеку командой `npm install automerge` или `yarn add automerge`, затем подключите её через `require('automerge')` (или `import Automerge from 'automerge'` в ES2015/TypeScript). Чтобы работать с исходным кодом, клонируйте репозиторий и выполните `yarn install`, `yarn test` и `yarn build` — в результате появится сборка для браузера в `dist/automerge.js`.
Нужен ли для работы какой-либо серверный бэкенд или база данных?Нет — это чисто клиентская JavaScript-библиотека, которой не нужен сервер. Она подтягивает лишь небольшие вспомогательные пакеты (fast-sha256, pako, uuid) для хеширования и сжатия.
Это та версия, которую мне стоит использовать сегодня?Нет — этот репозиторий устарел. Это была исходная реализация на чистом JavaScript, но вся разработка перешла на новую реализацию на Rust, которую проще перенести на другие платформы.
Работает ли она без подключения к сети?Да — она изначально рассчитана на офлайн-работу: каждый пользователь может продолжать редактировать свою локальную копию без связи, а слияние происходит автоматически, когда копии снова синхронизируются.
Чем Automerge отличается от ручного разрешения конфликтов при слиянии?Как CRDT, она устроена так, что одновременные правки всегда сливаются детерминированно и автоматически. Не нужен отдельный шаг ручного разрешения конфликтов, в отличие от обычных инструментов слияния.
Можно ли использовать TypeScript с Automerge?Да — определения типов входят в пакет (`@types/automerge`), а отдельный проект automerge-repo предоставляет более полный набор примеров на TypeScript для новой реализации.
Где искать вместо этого репозитория?Активно поддерживаемый преемник — реализация на Rust на сайте automerge.org, а также проект automerge-repo. Этот классический репозиторий сохранён только для справки.
What are similar projects?yjs, gun, rxdb, electric, WatermelonDB, pouchdb, git-bug, epiq
Creator
automerge
Size
4 MB
Stars
14.7K
Updated
CommitMar 09
Age
9y
Commits · 90 Days