-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Roadmap for 0.2.0 #31
Comments
Conceptually, sounds great. While we added basic Embed support in 0.1.0, it was far from obvious for me as to how to use it to represent styled/attributed text strings and reasonably/successfully convert from YSwift to either AttributedString or NSAttributedString for iOS and macOS apps. This may just be me needing to learn more, but I wonder if it's actually usable yet from the Swift side of things. I think there's a huge case for starting to verify interop with the other Y-CRDT sets of libraries. We should be good based on Yrs underpinning, but I think a small bit of sample interacting with a Web-based app of some form might be extremely worthwhile to showcase what's possible, and worthy of inclusion in 0.2.0 For the lib0 work - I think that's super interesting, and @ObuchiYuki implementation is lovely - but as a very direct port from lib0 itself, I fear it'll be awkward for arbitrary folks using YSwift to adopt. If I'm understanding the lib0 work correctly, anyone wanting to encode their own types using lib0 will need to implement their own conformance to LZCodable - which is set up as entirely separate from Codable, the iOS and macOS serialization standard (roughly equivalent to The benefit I see to enabling lib0 encoded results from a Codable conformance would be two fold - one, more compression than standard JSON encoding (I'm guessing there, but it seems likely), and two - better interoperability with javascript, python, or ruby types that are encoded on other platforms and that we want to seamlessly work with through YSwift. |
Agree with everything you mentioned. Embeds and Attributes definitely need more clarity – that's the thing that wasn't clear to me when I was doing it as well. It is just inherited from I overlooked the part that Yuki's implementation doesn't conform to I'll clarify these in the pinned message. |
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:
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.yjs
-based web app.Attribute
s andEmbed
s to allow more streamlined experience of working with rich text (think –NSAttributedString
)Codable
.Below are things that I think can wait:
TransactionMut
&Transaction
in Rust wrapperTransactionMut
– it is done so for simplicity purposes. But it does come at a cost, becauseTransactionMut
does more job than justTransaction
so it makes sense to separate between them for the Rust wrapper/YSwift as well.The text was updated successfully, but these errors were encountered: