Crate matrix_sdk_base

source ·
Expand description

This crate implements the base to build a Matrix client library.

§Crate Feature Flags

The following crate feature flags are available:

  • encryption: Enables end-to-end encryption support in the library.
  • qrcode: Enables QRcode generation and reading code.
  • testing: Provides facilities and functions for tests, in particular for integration testing store implementations. ATTENTION: do not ever use outside of tests, we do not provide any stability warantees on these, these are merely helpers. If you find you need any function provided here outside of tests, please open a Github Issue and inform us about your use case for us to consider.



  • Helpers for creating std::fmt::Debug implementations.
  • SDK-specific variations of response types from Ruma.
  • Abstraction over an executor so we can spawn tasks under WASM the same way we do usually.
  • A TTL cache which can be used to time out repeated operations that might experience intermittent failures.
  • latest_evente2e-encryption or experimental-sliding-sync
    Utilities for working with events to decide whether they are suitable for use as a crate::Room::latest_event.
  • Common types for media content.
  • Client-side read receipts computation
  • Types and traits for working with the Matrix protocol.
  • sliding_syncexperimental-sliding-sync
    Extend BaseClient with capabilities to handle MSC3575.
  • The state store holds the overall state for rooms, users and their profiles and their timelines. It is an overall cache for faster access and convenience- accessible through Store.
  • Collection of small helpers that implement store-based locks.
  • The SDK’s representation of the result of a /sync request.






  • Super trait that is used for our store traits, this trait will differ if it’s used on WASM. WASM targets will not require Send and Sync to have implemented, while other targets will.
  • SendOutsideWasmNon-WebAssembly
    Alias for Send on non-wasm, empty trait (implemented by everything) on wasm.
  • SyncOutsideWasmNon-WebAssembly
    Alias for Sync on non-wasm, empty trait (implemented by everything) on wasm.

Type Aliases§