Releases: matrix-org/matrix-rust-sdk
matrix-sdk 0.8.0
What's Changed
Bug Fixes
-
Add more invalid characters for room aliases.
-
Match the right status code in
Client::is_room_alias_available. -
Fix a bug where room keys were considered to be downloaded before backups were
enabled. This bug only affects the
BackupDownloadStrategy::AfterDecryptionFailure, where no attempt would be
made to download a room key, if a decryption failure with a given room key
would have been encountered before the backups were enabled.
Documentation
- Improve documentation of
Client::observe_events.
Features
-
Add
create_room_aliasfunction. -
Client::cross_process_store_locks_holder_nameis used everywhere: -
StoreConfig::new()now takes a
cross_process_store_locks_holder_nameargument. -
StoreConfigno longer implementsDefault. -
BaseClient::new()has been removed. -
BaseClient::clone_with_in_memory_state_store()now takes a
cross_process_store_locks_holder_nameargument. -
BaseClientno longer implementsDefault. -
EventCacheStoreLock::new()no longer takes akeyargument. -
BuilderStoreConfigno longer has
cross_process_store_locks_holder_namefield forSqliteand
IndexedDb. -
EncryptionSyncServiceandNotificationare usingClient::cross_process_store_locks_holder_name. -
Allow passing a custom
RequestConfigto an upload request. -
Retry uploads if they've failed with transient errors.
-
Implement
EventHandlerContextfor tuples. -
Introduce a mechanism similar to
Client::add_event_handlerand
Client::add_room_event_handlerbut with a reactive programming pattern. Add
Client::observe_eventsandClient::observe_room_events.
// Get an observer.
let observer =
client.observe_events::<SyncRoomMessageEvent, (Room, Vec<Action>)>();
// Subscribe to the observer.
let mut subscriber = observer.subscribe();
// Use the subscriber as a `Stream`.
let (message_event, (room, push_actions)) = subscriber.next().await.unwrap();When calling observe_events, one has to specify the type of event (in the
example, SyncRoomMessageEvent) and a context (in the example, (Room, Vec<Action>), respectively for the room and the push actions).
-
Implement unwedging for media uploads.
-
Send state from state sync and not from timeline to widget (#4254)
-
Allow aborting media uploads.
-
Add
RoomPreviewInfo::num_active_members. -
Use room directory search as another data source.
-
Check if the user is allowed to do a room mention before trying to send a call
notify event.
(#4271) -
Add
Client::cross_process_store_locks_holder_name(). -
Add a
PreviouslyVerifiedvariant toVerificationLevelindicating that the
identity is unverified and previously it was verified. -
New
UserIdentity::pinmethod. -
New
ClientBuilder::with_decryption_trust_requirementmethod. -
New
ClientBuilder::with_room_key_recipient_strategymethod -
New
Room.set_account_dataandRoom.set_account_data_rawRoomAccountData
setters, analogous to the GlobalAccountData -
New
RequestConfig.max_concurrent_requestswhich allows to limit the maximum
number of concurrent requests the internal HTTP client issues (all others have
to wait until the number drops below that threshold again) -
Implement proper redact handling in the widget driver. This allows the Rust
SDK widget driver to support widgets that rely on redacting.
Refactor
-
[breaking] Rename
DisplayNametoRoomDisplayName. -
Improve
is_room_alias_format_validso it's more strict. -
Remove duplicated fields in media event contents.
-
Use
SendHandlefor media uploads too. -
Move
event_cache_store/toevent_cache/store/inmatrix-sdk-base. -
Move
linked_chunkfrommatrix-sdktomatrix-sdk-common. -
Move
EventandGapintomatrix_sdk_base::event_cache. -
Move
formatted_caption_fromto the SDK, rename it. -
Tidy up and start commenting the widget code.
-
Get rid of
ProcessingContextand inline it in its callers. -
Get rid of unused
limitsparameter when constructing aWidgetMachine. -
Use a specialized mutex for locking access to the state store and
being_sent. -
Renamed
VerificationLevel::PreviouslyVerifiedto
VerificationLevel::VerificationViolation. -
[breaking] Replace the
Notificationtype from Ruma inSyncResponseand
Client::register_notification_handlerby a custom one. -
[breaking] The ambiguity maps in
SyncResponseare moved toJoinedRoom
andLeftRoom. -
[breaking]
Room::can_user_redactandMember::can_redactare split
between*_redact_ownand*_redact_other. -
[breaking]
AmbiguityCachecontains the room member's user ID. -
[breaking] Replace
impl MediaEventContentwith&impl MediaEventContentin
Media::get_file/Media::remove_file/Media::get_thumbnail/Media::remove_thumbnail -
[breaking] A custom sliding sync proxy set with
ClientBuilder::sliding_sync_proxynow takes precedence over a discovered
proxy. -
[breaking]
Client::get_profilewas moved toAccountand renamed to
Account::fetch_user_profile_of.Account::get_profilewas renamed to
Account::fetch_user_profile. -
[breaking] The
HttpError::UnableToCloneRequesterror variant has been
removed because it was never used or generated by the SDK. -
[breaking] The
Error::InconsistentStateerror variant has been removed
because it was never used or generated by the SDK. -
[breaking] The widget capabilities in the FFI now need two additional
flags:update_delayed_event,send_delayed_event. -
[breaking]
Room::eventnow takes an optionalRequestConfigto allow
for tweaking the network behavior. -
[breaking] The
instantmodule was removed, use theruma::timemodule
instead. -
[breaking] Add
ClientBuilder::sqlite_store_with_cache_pathto build a
client that stores caches in a different directory to state/crypto. -
[breaking] The
bodyparameter inget_media_filehas been replaced with
afilenameparameter now that Ruma has afilename()method.
matrix-sdk-crypto-ffi-0.4.3
Production-ready version of iOS Crypto SDK, containing precompiled matrix-sdk-crypto-ffi Apple framework.
- Exposed PKEncryption APIs directly from vodozemac
matrix-sdk-crypto 0.7.2
What's Changed
Security Fixes
- Fix
UserIdentity::is_verifiedto take into account our own identity #d8d9dae (Moderate, CVE-2024-40648, GHSA-4qg4-cvh2-crgg).
matrix-sdk-crypto-ffi-0.4.2
Production-ready version of iOS Crypto SDK, containing precompiled matrix-sdk-crypto-ffi Apple framework.
Changes:
FFI Bindings: Expose CryptoStore clear caches
matrix-sdk-crypto-ffi-0.4.1
Production-ready version of iOS Crypto SDK, containing precompiled matrix-sdk-crypto-ffi Apple framework.
Contains some breaking changes
matrix-sdk-crypto-ffi-0.3.13
matrix-sdk-crypto-ffi-0.3.12
matrix-sdk-crypto-ffi-0.3.11
matrix-sdk-crypto-js-0.1.4
- Add method
OlmMachine.queryKeysForUsersto build an out-of-band key request.
matrix-sdk-crypto-js-0.1.3
Changes in the Javascript bindings
- Fix bug introduced in v0.1.2 which caused an undocumented change to the results of
OlmMachine.receiveSyncChanges.
Changes in the underlying Rust crate
- Fix a bug which could cause generated one-time-keys not to be persisted.