Serialization of custom OT types
- Dominant language
- JavaScript
- Stars
- 5k
- Forks
- 454
- PR merge metrics
- No merged PRs in 30d
Description
Hi ShareJS community!
You guys have done an amazing job here and I'd like to contribute.
I am exploring the possibility of using ShareJS to solve the shared-mutable-state problem I have with my Trello-like web app. I have concluded that the JSON0 type cannot be used to enforce the invariants of my application state and therefore I must implement a custom OT type for my application state.
The snapshot for my custom OT type is an immutable object from the Immutable.js npm module. As a result, I need custom serialization/deserialization methods as documented here: https://github.com/ottypes/docs#optional-properties.
Unfortunately, the shareJS and liveDB libraries do not support the optional serialization/deserialization methods on OT types. I have forked the ShareJS and LiveDB repos to add custom serialization for my purposes ( https://github.com/DetweilerRyan/ShareJS https://github.com/DetweilerRyan/livedb ).
I feel there is a strong use case for custom serialization support ( I can go into more detail if needed ) and believe it should be supported by the two libraries.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the optional serialization/deserialization properties in the linked OT types documentation, then inspect the serialization paths in the ShareJS and liveDB repositories and compare the author's linked forks. Done means custom OT serialization and deserialization methods are supported across both libraries for an Immutable.js snapshot.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100