crdt 4.0.1 crdt: ^4.0.1 copied to clipboard
Dart implementation of Conflict-free Replicated Data Types (CRDTs).
4.0.1 #
- Fix edge case when merging remote records
4.0.0 #
- Migrate to Dart null safety
3.0.0 #
- Use milliseconds instead of microseconds for HLCs
- Allow using non-string node ids
- Allow watching for changes
- Add
modified
field toRecord
- Add optional parameter
modifiedSince
to 'recordMap' to generate delta sets - Make basic tests available to subclasses
- Move HiveCrdt project to its own repo: https://github.com/cachapa/hive_crdt
2.2.2 #
- Hlc: Add convenience
fromDate
constructor - HiveCrdt: Fix NPE when getting a non-existing record
2.2.1 #
- Crdt: Fix encoder return type
2.2.0 #
- Crdt: Pass keys to map encoder and decoder, useful to disambiguate when parsing
2.1.1 #
- Crdt: Fix HLC timestamp generation for dart-web
2.1.0 #
- Hlc: Add
const
keywords to constructors wherever possible - Crdt: Expose canonical time
- Crdt: Add convenience methods (isEmpty. length, etc.)
- Crdt: Add encoders and decoders to serialization helpers
- Crdt: Remove delta subsets using the record's HLC since it can lead to incomplete merges
- Crdt: Fix issue where canonical time wasn't being incremented on merge
- Crdt: Fix NPE when getting non-existent value
- HiveCrdt: Store record modified time
- HiveCrdt: Retrieve delta changesets based on modified times
- HiveCrdt:
between()
returns values instead of records - HiveCrdt:
watch()
returnsMapEntry
instead ofBoxEvent
- HiveCrdt: Fix DateTime key serialization
2.0.0 #
- Remove CrdtStore.
- Make Crdt abstract.
- Remove watches (they can be added in subclasses - see HiveCrdt).
- Add MapCrdt, a CRDT backed by a standard Map useful for testing or for volatile datasets.
- Add HiveCrdt as a submodule, A CRDT backed by a Hive store.
1.2.2 #
- Fix incrementing the HLC when merging newer records.
- Fix counter not being able to reach maximum (0xFFFF)
1.2.1 #
- Remove unnecessary Future in
Crdt.values
getter.
1.2.0 #
- Breaking:
Crdt.get()
now returns the value (ornull
) rather than the record. UseCrdt.getRecord()
for the previous behaviour. - API Change: Getter methods on both
Crdt
andStore
are now synchronous. - API Change:
Crdt.Clear()
now acceptspurgeRecords
to determine if records should be purged or marked as deleted. - Add
Crdt.watch()
andStore.watch()
to monitor the CRDT for changes. - Add
Crdt.isDeleted()
to check if a record has been deleted.
1.1.1 #
- Add values getter which retrieves all values as list, excluding deleted records
1.1.0 #
- HLCs implement Comparable
- Support typed key and values
- Refactor CRDT and Store to replace index operators with getters and setters
- Add clear() method
- Add JSON de/serialisation helper methods
1.0.0 #
- Initial version