Matrix SDK

Matrix (matrix.org) SDK written in dart.

Native libraries

For E2EE, libolm must be provided.

Additionally, OpenSSL (libcrypto) must be provided on native platforms for E2EE.

For flutter apps you can easily import it with the flutter_olm and the flutter_openssl_crypto packages.

flutter pub add matrix
flutter pub add flutter_olm
flutter pub add flutter_openssl_crypto

Get started

See the API documentation for details:

API documentation

Tests

thread_count=$(getconf _NPROCESSORS_ONLN) // or your favourite number :3
dart test --concurrency=$thread_count test
  • Adding the -x olm flag will skip tests which require olm
  • Using -t olm will run only olm specific tests, but these will probably break as they need prior setup (which is not marked as olm and hence won't be run)

Libraries

encryption
Matrix SDK encryption specific extension
encryption/cross_signing
encryption/encryption
encryption/key_manager
encryption/key_verification_manager
encryption/olm_manager
encryption/ssss
encryption/utils/base64_unpadded
encryption/utils/bootstrap
encryption/utils/json_signature_check_extension
encryption/utils/key_verification
encryption/utils/olm_session
encryption/utils/outbound_group_session
encryption/utils/session_key
encryption/utils/ssss_cache
encryption/utils/stored_inbound_group_session
fake_matrix_api
matrix
Matrix SDK written in pure Dart.
matrix_api_lite
Lightweight wrapper around the raw matrix API.
matrix_api_lite/generated/api
matrix_api_lite/generated/fixed_model
matrix_api_lite/generated/internal
matrix_api_lite/generated/model
matrix_api_lite/matrix_api
matrix_api_lite/model/algorithm_types
matrix_api_lite/model/auth/authentication_data
matrix_api_lite/model/auth/authentication_identifier
matrix_api_lite/model/auth/authentication_password
matrix_api_lite/model/auth/authentication_phone_identifier
matrix_api_lite/model/auth/authentication_recaptcha
matrix_api_lite/model/auth/authentication_third_party_identifier
matrix_api_lite/model/auth/authentication_three_pid_creds
matrix_api_lite/model/auth/authentication_token
matrix_api_lite/model/auth/authentication_types
matrix_api_lite/model/auth/authentication_user_identifier
matrix_api_lite/model/basic_event
matrix_api_lite/model/basic_event_with_sender
matrix_api_lite/model/basic_room_event
matrix_api_lite/model/children_state
matrix_api_lite/model/event_types
matrix_api_lite/model/events/forwarded_room_key_content
matrix_api_lite/model/events/image_pack_content
matrix_api_lite/model/events/olm_plaintext_payload
matrix_api_lite/model/events/room_encrypted_content
matrix_api_lite/model/events/room_encryption_content
matrix_api_lite/model/events/room_key_content
matrix_api_lite/model/events/room_key_request_content
matrix_api_lite/model/events/secret_storage_default_key_content
matrix_api_lite/model/events/secret_storage_key_content
matrix_api_lite/model/events/tombstone_content
matrix_api_lite/model/matrix_event
matrix_api_lite/model/matrix_exception
matrix_api_lite/model/matrix_keys
matrix_api_lite/model/message_types
matrix_api_lite/model/presence
matrix_api_lite/model/presence_content
matrix_api_lite/model/room_creation_types
matrix_api_lite/model/room_keys_keys
matrix_api_lite/model/room_summary
matrix_api_lite/model/room_types
matrix_api_lite/model/stripped_state_event
matrix_api_lite/model/sync_update
matrix_api_lite/utils/filter_map_extension
matrix_api_lite/utils/logs
matrix_api_lite/utils/map_copy_extension
matrix_api_lite/utils/try_get_map_extension
matrix_api_lite/values
msc_extensions/extension_audio_events/audio_events
msc_extensions/extension_recent_emoji/recent_emoji
Extension to synchronize the recently used widgets with Element clients
msc_extensions/msc_1236_widgets/msc_1236_widgets
Extensions related to widgets in a room. Widgets are not part of the Matrix specification yet.
msc_extensions/msc_1236_widgets/src/widget
msc_extensions/msc_2835_uia_login/msc_2835_uia_login
Experimental login method using User Interactive Authentication
msc_extensions/msc_3814_dehydrated_devices/api
msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device
msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device_events
msc_extensions/msc_3814_dehydrated_devices/msc_3814_dehydrated_devices
Extensions for the experimental dehydrated devices MSC, which allows receiving encrypted messages while you have no devices signed in.
msc_extensions/msc_3935_cute_events/msc_3935_cute_events
msc_extensions/msc_unpublished_custom_refresh_token_lifetime/msc_unpublished_custom_refresh_token_lifetime