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
causalityGuaranteed
option.
v0.13.2
- Fix ws-server
InMemoryDocStore
bug that caused too many checkpoint requests - Add
CRuntime.batchRemoteUpdates
method that lets you avoid unnecessary renders (specifically, change events), and use it in the load/welcome step of network providers - Add ws-client
batchRemoteMS
option (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-server
command: 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
CRuntime
events, 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:
CVar
andCBoolean
now 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
Bytes
class. Instead, use base64-js. - Change some optional params to options objects (
Collab.emit
,TestingRuntimes.newRuntime
).
Other API/behavior changes:
splice
andindexOf
now handle out-of-range indices like their Array analogs.- Make
CValueSet.delete
's return value match the built-in Set. Likewise forCValueMap
. CList
now 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.get
now 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
Cursor
type andCursors
utils, 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.
CList
semantics 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
Position
import 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
Position
import 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
CRichText
Collab 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
CText
utility methods.
Alpha software - API subject to change.