Releases: composablesys/collabs
Releases · composablesys/collabs
v0.13.4
v0.13.3
- WebSocketNetwork: always deliver updates in causal order, so that it can be used with CRuntime's
causalityGuaranteedoption.
v0.13.2
- Fix ws-server
InMemoryDocStorebug that caused too many checkpoint requests - Add
CRuntime.batchRemoteUpdatesmethod that lets you avoid unnecessary renders (specifically, change events), and use it in the load/welcome step of network providers - Add ws-client
batchRemoteMSoption (in subscribe) that batches remote updates - Use above feature in rich-text demo to deliver Quill updates only once per 50 ms. This is important in large groups, where delivering updates to Quill becomes the bottleneck.
collabs-ws-servercommand: input HOST instead of HOSTNAME
v0.13.1
This release adds network and storage providers and React hooks. It also removes containers.
New packages:
- @collabs/indexeddb
- @collabs/local-storage
- @collabs/tab-sync
- @collabs/react
Revamped packages:
- @collabs/ws-client
- @collabs/ws-server
These are now more reasonable, e.g., storing doc states and allowing you to authenticate clients.
Deleted packages:
- @collabs/container
- @collabs/container-testing-server
Other breaking changes:
- @collabs/collabs: Refactored
CRuntimeevents, and renamedRuntimeEventsRecord->DocEventsRecord,RuntimeOptions->DocOptions.
Misc:
- Revised https://collabs.readthedocs.io/en/latest/ (in particular, its description of documents) and added descriptions of the new packages.
- Added a Recipe Editor demo that uses @collabs/react.
- Moved templates to their own repos: https://github.com/composablesys/collabs-template-app , https://github.com/composablesys/collabs-template-crdt
This is almost a 1.0 "beta" release; before that, I mainly intend to work on rich-text editor integrations.
v0.12.0
This release cleans up the project internals and some APIs. After this release, I have no more planned breaking API changes in @collabs/collabs except for small tweaks to CRichText and some list internals.
Breaking changes:
CVarandCBooleannow emit a "Set" event every time they receive an operation, even if it does not change the value.- Remove some list utility methods (e.g.
CValueList.concat). - Change the order of list
entries()methods' outputs:[index, value, position]instead of[index, position, value]. Likewise forCRichText.entries(). - Change
CRichText's default iterator to useformatted()instead ofentries(). - Remove
CMap.getConflicts(). - Remove runtime
nextUID()andnextLocalCounter()utility methods. - Remove
Bytesclass. Instead, use base64-js. - Change some optional params to options objects (
Collab.emit,TestingRuntimes.newRuntime).
Other API/behavior changes:
spliceandindexOfnow handle out-of-range indices like their Array analogs.- Make
CValueSet.delete's return value match the built-in Set. Likewise forCValueMap. CListnow emits additional events concerning archived values. These should be sufficient to let you maintain a local view of the archived values and their positions.- Add AbstractDoc versions of CRuntime utility methods (
fromID,idOf,replicaID). MultiValueMap.getnow defensively copies internal arrays before returning.
v0.11.1
- Fix CRichText empty load bug
v0.11.0
New features:
- Shared presence, including shared cursors in Quill demo
Cursortype andCursorsutils, for managing and sharing Cursors slightly more easily than withPosition. See plaintext demo for example usage.
Misc changes:
- Name change: Plain Tree -> Fugue. The algorithm is unchanged.
CListsemantics change: use restore-wins for archive vs restore. This enables "keepalive" semantics like those from the paper A Study of Semantics for CRDT-based Collaborative Spreadsheets.
Alpha software - API subject to change.
v0.10.2
Bug fix:
- Add
Positionimport in 2ndabstract_lists.d.ts(caused an error when compiling a Node project that imported@collabs/crdts)
Alpha software - API subject to change.
v0.10.1
Bug fixes:
- Add
Positionimport inabstract_lists.d.ts(caused an error when compiling a Node project that imported@collabs/core) - Add missing dependency to the rich-text demo's package.json.
Alpha software - API subject to change.
v0.10.0
- Adds
CRichTextCollab implementing a rich-text string, based on the Peritext algorithm. - Changes the library used by
StringSerializer. This (somehow) reduces memory usage by 50% on our text benchmarks. - Adds some
CTextutility methods.
Alpha software - API subject to change.