Skip to content

Latest commit

 

History

History
96 lines (81 loc) · 5.56 KB

lib-collab-automerge-examples.md

File metadata and controls

96 lines (81 loc) · 5.56 KB
title tags created modified
lib-collab-automerge-examples
automerge
collaboration
examples
2023-09-01 10:18:00 UTC
2023-09-01 10:18:14 UTC

lib-collab-automerge-examples

guide

popular

starter

examples

automerge-hypercore

automerge-v1

  • https://github.com/automerge/hypermerge /MIT/ts/archived

    • Hypermerge is a Node.js library for building p2p collaborative applications without any server infrastructure.
    • It combines Automerge, a CRDT, with hypercore, a distributed append-only log.
    • Hypermerge is deprecated.
    • Hypermerge is a distributed document store. It draws inspiration from databases like CouchDB and PouchDB
    • hypermerge document is built up by applying a series of changes generated on different clients.
      • Every time you open a hypermerge document, the system replays all the logs of changes from every client to recreate the document state.
      • This can be slow and expensive for large documents, but has excellent history-preserving properties and guarantees clients can always return to earlier states or merge new changes as they arrive.
    • Hypermerge stores an automerge document as a set of separate Hypercores, one per actor ID. Each actor ID in the document is the discovery key of a Hypercore, which allows recursive lookup.
    • This strategy works for a small number of documents, but is very slow to synchronize due to the vast number of Hypercores required for a large collection.
    • Every opened hypercore keeps a file handle open permanently
    • Local-first database: Hypermerge | Jared Forsyth.com_202009
      • It is designed as a fully peer-to-peer data storage system, and is electron/nodejs-only (no browser support).
      • Conflicts are automatically resolved by Automerge, although the exact behavior is undocumented.
      • Hypercore, the underlying persistence layer, uses hashing to verify consistency (from what I can tell).
      • Both client and server store a full replica of all changes made, and from some preliminary testing, it looks like the constant factor is rather high (the on-disk size increasing by multiple kilobytes when adding a single change to an attribute).
      • it is a research tool primarily, and not meant to be production ready.
  • https://github.com/nornagon/autowiki /automerge

    • Autowiki is a tool for creating networked documents.
    • Autowiki is a local-first app: you own all the data you put into it, and your data never leaves your own machine unless you want it to.
    • Autowiki uses automerge under the hood to resolve edit conflicts automatically.

sync

utils

more