Release Notes

Rust

Document image


4.9.0 Version Release

Release Date: ...

4.9.0 Rust Specific Changes

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.

General Changes

🛠️ 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).

API Renaming

⚠️ 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()



Module Reorganization

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

Depreciated unused and unintentially exposed items

⚠️ 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





Updated 09 Nov 2024
Did this page help you?