Rust
Release Date: ...
The 4.9.0 Rust release has come with a collection of API changes designed to align the Rust SDK with the standards of our other SDK. These changes were done to align naming conventions as well as to regorganice the module to make it more consistent with other SDKs.
These API changes include a number of depreciated APIs. For insteances where APIs are depreciated you'll find replacement APIs provided.
All changes are backwards compatable.
🛠️ Fixed: Resolved an issue where store_observer.is_cancelled() could return incorrect values (#14419).
➕ Added: ditto.update_transport_config() API (#5928)
➕ Added: V3ConnectionType to provide internal access to a presence peer’s connection type (#12945).
➕ Added: #[must_use] attribute on Subscription, PresenceObserver, and LiveQuery to encourage correct usage (#13256).
⚠️ Deprecated: ditto.authenticator() & DittoAuthenticator::new(#13606, 13851)
- Useditto.auth()
⚠️ Deprecated: ditto.current_transport_config() (#13606).
- Use ditto.transport_config()
⚠️ Deprecated: ditto.application_id() (#13606).
- Use ditto.app_id()
Added a dedicated presence module for the Presence API
⚠️ Deprecated: dittolive_ditto::transport::{Peer, Presence, PresenceGraph, PresenceObserver, PresenceOs, Connection, ConnectionType} (#13645).
- use dittolive_ditto::presence::{Peer, Presence, PresenceGraph, PresenceObserver, PresenceOs, Connection, ConnectionType}
➕ Added: dittolive_ditto::presence::{ConnectionRequest, ConnectionRequestAuthorization} (previously only available via prelude) (#13645)
Flattened store module, improved store docs
🔄 Changed: Moved store::dql module to crate-level
⚠️ Deprecated: store::attachment, store::collection, and store::collections modules, with items moved to streamlined modules.
- use store::attachment::{FetcherVersion, DittoAttachmentFetcher, DittoAttachmentToken, DittoAttachmentFetchEvent, DittoAttachmentTokenLike}
⚠️ Deprecated: store::collections::{event, pending_collections_operation} modules
- use store::collections::{CollectionsEvent, PendingCollectionsOperation, CollectionsEventHandler}
⚠️ Deprecated: store::collection::{document, document_id, pending_cursor_operation, pending_id_specific_operation, type_traits} modules
- use store::collection::{DocumentId, PendingCursorOperation, PendingIdSpecificOperation, DittoDocument, DittoMutDocument, MutableValue}
🔄 Changed: Moved dql::{StoreObserver, ChangeHandler, ChangeHandlerWithSignalNext, SignalNext} to the store module
Additonal Module Changes
🔄 Changed: Moved SyncSubscription to sync module, updated docs (#13645)
🗑️ Removed: ditto module from the public API (#13645).
- Moved ditto module contents to crate-level (#13645)
⚠️ Deprecated: the auth module, items moved to identity (#13645)
⚠️ Deprecated: the observer module and Observer trait (#13645)
🔄 Changed: Moved SyncSubscription to sync module (#13702)
- Changed: Updated sync module docs (#13702)
- Deprecated: dittolive_ditto::store::dql::SyncSubscription
- Added: dittolive_ditto::sync::SyncSubscription
➕ Added: DittoMutableCounter and DittoMutableRegister to prelude
➕ Added: New store::query_builder module as home for all QueryBuilder types (#14162)
- Deprecated: crate-level types module, contents moved into query_builder
- Deprecated: store::{batch,collection,collections,live_query,update} modules, contents moved into query_builder
- Deprecated: crate-level subscription module, Subscription moved into query_builder module
⚠️ Deprecated: removed ValidityListener from public API (#13857)
⚠️ Deprecated: DittoBuilder::new()
- use Ditto::builder() instead.
⚠️ Deprecated: the store::timeseries module and items (#13902)
⚠️ Deprecated: SiteId, use ditto.presence().graph().local_peer.peer_key_string instead