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

2 participants