Releases: heckj/CRDT
Releases · heckj/CRDT
Initial API release
Initial API Release
- Multiple well-known CRDT types included:
GCounter
,PNCounter
,GSet
,ORSet
,ORMap
, andList
- Documentation hosted at Swift Package Index
- All included CRDT implementations support whole-instance merging and delta-state replication and merging.
- APIs for merging include
merged(:_)
which implicitly makes a copy, andmerging(:_)
which modifies an in-place struct. - Corrupted history is identifier and thrown as an error, relevant for
ORSet
,ORMap
, andList
types. - Project includes basic benchmarks, with results available through the GitHub repo.
- extended conformances for CRDT types, when underlying (and ActorID) types support it:
Codable
,Hashable
,Equatable
, andSendable
What's Changed since the pre-release (0.5.0-alpha1)
- Additional checking for error states in merging related, and unrelated, CRDT instances by @heckj in #16
- String convertible by @heckj in #17
- ORmap by @heckj in #18
- Example code baseline by @heckj in #19
- additional use cases of replication tests by @heckj in #20
- Sendable by @heckj in #21
- adding stub article for details about replicating content by @heckj in #22
- basic benchmarks by @heckj in #23
- Causal Tree List by @heckj in #24
- Update .spi.yml by @finestructure in #26
New Contributors
- @finestructure made their first contribution in #26
Full Changelog: 0.5.0-alpha1...0.5.0
Initial release
Initial alpha release.
The pre-release includes an initial implementation, API, and documentation for the raw CRDT data types:
- GCounter
- PNCounter
- LWWRegister
- GSet
- ORSet
The pre-release is intended for feedback on API usage, and should not be considered stable.
The delta-state merge methods are set to asynchronous, and both an ORMap and an actor-based replicator wrapper is still pending as of this release.
To use this release, add the following dependency to your Package.swift
:
.package(url: "https://github.com/heckj/CRDT.git", from:"0.5.0-alpha1")