yswift icon indicating copy to clipboard operation
yswift copied to clipboard

Roadmap for 0.2.0

Open nugmanoff opened this issue 1 year ago • 2 comments

Hey @ObuchiYuki @heckj, here's the draft for roadmap for the 0.2.0 release as I see it. I would love to have your input on this one to decide what we need to prioritize/add/remove.

I will be updating this message as we proceed with the discussion.

Following are improvements that I think should be included in the next release:

  • [ ] Expose iterator directly from Rust
    • Basically it means wrapping iter() method in Rust directly. Right now iteration is pretty naively implemented – it just collects all values upfront and then iterates over them. Direct iterator wrapping will enable us to have better support for Sequence, Collection types on the Swift side.
  • [ ] Verify interoperability with other language bindings. Probably start by interacting with simple yjs-based web app.
  • [ ] Improve usability of Attributes and Embeds to allow more streamlined experience of working with rich text (think – NSAttributedString)
  • [ ] Implement lib0
    • @ObuchiYuki already ported here most of it. We'd just need to implement it as top-level coder and fully conform to Codable.
  • [ ] Leverage lib0 encoding/decoding to pass complex types instead of JSON String.
    • We already started discussing it with Joe, I think we can continue it there as well https://github.com/y-crdt/yswift/issues/7
  • [ ] Nested types
  • [ ] Implement YProtocol

Below are things that I think can wait:

  • [ ] Separate TransactionMut & Transaction in Rust wrapper
    • [ ] Make Concurrency support more fine-grained
    • Right now all transactions that are created through Rust wrapper are TransactionMut – it is done so for simplicity purposes. But it does come at a cost, because TransactionMut does more job than just Transaction so it makes sense to separate between them for the Rust wrapper/YSwift as well.
  • [ ] Transaction Events
  • [ ] Undo/Redo Manager
  • [ ] Awareness
  • [ ] Integration with Lexical

nugmanoff avatar May 15 '23 10:05 nugmanoff