What's Changed
BREAKING CHANGES
General
- All
Replicamethods are now async. - All
StorageandStorageTxnmethods are now async. - Minimum Supported Rust Version (MSRV) is now 1.88.0
Storage
- The
Storagetrait now requiresSend. This makes the type usable in common async contexts. - The
StorageConfigtype has been removed. Storage instances are now to be created directly. This is necessary because theStoragetrait is no longer object-compatible, soReplicais generic over the storage type, and must be created with a value of a type that implementsStorage. Replicanow takes a type parameter S implementingStorage
Server
ServerConfig::Awshas two new fields, and the type ofregionhas changed. These changes allow using AWS storage with non-AWS implementations of S3 such as Minio and Ceph. The new fields can be omitted for users of the "real" S3.- The AWS implementation no longer uses IMDS (instance metadata) to fetch credentials.
Non-Breaking Changes
- WASM support - TaskChampion can now be built for WASM, and features an IndexedDB storage implementation and support for the server-sync protocol via the Fetch API.
- Performance generating snapshots in debug builds has been improved dramatically (#593)
- server-aws, server-gcp, and server-sync all use the same HTTP backend, unifying behavior and moderately reducing binary size (this necessitated dropping IMDS support, as mentioned above)
- The set of allowed tags is now expanded to include non-alphanumeric characters (#659)
New Contributors
- @taliaferro made their first contribution in #582
- @travisby made their first contribution in #602
- @geofflittle made their first contribution in #600
- @martiege made their first contribution in #614
- @miguelpduarte made their first contribution in #625
- @smemsh made their first contribution in #659
Full Changelog: v2.0.3...v3.0.0