automerge / MeetingNotes

An example application that uses Automerge-Swift to provide collaborative note taking for meetings.

Home Page:https://automerge.org/MeetingNotes/documentation/meetingnotes/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Extract and establish an automerge-repo-swift package

heckj opened this issue · comments

Extract the WebSocket, and Peer 2 Peer, SyncCoordinator into an Automerge-repo package suitable to be shifted into its own public repository and re-used. (expected repo name automerge-repo-swift, roughly duplicating what Alex is doing with automerge-repo-rs)

  • top level package
  • synchronizer and manage storage for a collection of automerge documents
  • protocol/interface for network connections, based on automerge-repo interface
  • protocol/interface for storage handling, based on automerge-repo interface
  • module w/ built-in WebSocket network conforming to interface
  • module w/ built-in peer to peer network conforming to interface
  • module w/ built-in in-memory storage
  • module w/ built-in incremental storage (for cloud-based storage systems)
  • establish state to expose, and publish for network transports
  • establish connection types for network interface, and manage w/ configure()
  • associated documentation

The updates in this repo have reached a point where WebSocket synchronization is fully functional, but not all aspects have been ported (specifically - the peer-based networking). I've cut the package at this spot into it's own repository, and will continue advancing it there, rather than slipping in under MeetingNotes.

Once that advances to support everything I was using in MeetingNotes, I'll come back and re-work this project to use the initial release of automerge-repo-swift and remove the legacy code.