Skip to content

Conversation

@rroohhh
Copy link
Member

@rroohhh rroohhh commented Mar 1, 2025

Loro has multiple advantages over automerge

  • comes with python bindings, so we don't have to maintain our own
  • has a native undo / redo mechanism
  • has a native awareness / presence mechanism
  • has native cursor / selection tracking
  • has a mechanism to subscribe to changes of a sub container (map / list / etc) (could be used to optimize the useDocumentSelector stuff)

Right now basic text editing and undo redo works, backend / worker integration is completely missing.
I test it by manually converting a automerge doc to a loro doc using the conv_loro.py script and overriding the document data with admin set_document.

TODO:

  • worker integration
  • periodic change -> snapshot encoding rollups
  • awareness
  • fix everything around speaker names
  • tests for the LoroEventBatch -> slate Transform conversion. (just capture an editing trace and play it back maybe?)
  • migration from automerge -> loro documents
  • remove docProxy
  • types lol
  • move the slate <-> loro stuff to a seperate repo like slate <-> automerge?
  • use useSyncExternalStore

@rroohhh rroohhh marked this pull request as draft March 1, 2025 12:00
Base automatically changed from set_document to main March 3, 2025 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants