Expand description
Types and traits for working with the Matrix protocol.
This crate re-exports things from all of the other ruma crates so you don’t have to manually keep all the versions in sync.
Which crates are re-exported can be configured through cargo features.
⚠ Some details might be missing because rustdoc has trouble with re-exports so you may need to refer to other crates’ documentations.
🛈 For internal consistency, Ruma uses American spelling for variable names. Names may differ in the serialized representation, as the Matrix specification has a mix of British and American English.
API features
Depending on which parts of Matrix are relevant to you, activate the following features:
appservice-api
– Application Service API.client-api
– Client-Server API.federation-api
– Server-Server (Federation) API.identity-service-api
– Identity Service API.push-gateway-api
– Push Gateway API.
These features have client
- and server
-optimized variants that are enabled respectively
with the -c
and -s
suffixes. For example:
client-api-c
– The Client-Server API optimized for the client side.client-api-s
– The Client-Server API optimized for the server side.
Compatibility feature
compat
increases compatibility with other parts of the Matrix ecosystem, at the expense of deviating from the specification.
Convenience features
These features are only useful if you want to use a method that requires it:
rand
markdown
Unstable features
By using these features, you opt out of all semver guarantees Ruma otherwise provides:
unstable-exhaustive-types
– Most types in Ruma are marked as non-exhaustive to avoid breaking changes when new fields are added in the specification. This feature compiles all types as exhaustive.unstable-mscXXXX
, whereXXXX
is the MSC number – Upcoming Matrix features that may be subject to change or removal.unstable-pre-spec
– Undocumented Matrix features that may be subject to change or removal.unstable-sanitize
– Convenience methods for spec-compliant HTML sanitization that have not been thoroughly tested.
Common features
These submodules are usually activated by the API features when needed:
api
events
signatures
ruma-client
features
The client
feature activates ruma::client
, and client-ext-client-api
activates
ruma-client
s client-api
feature. All other client-*
features activate the same feature
without the client-
prefix on ruma-client
. See the crate’s documentation for the effect of
these features.
If you are viewing this on docs.rs
, you can have a look at the feature dependencies by
clicking Feature flags in the toolbar at the top.
Re-exports
pub use assign::assign;
pub use js_int::int;
pub use js_int::uint;
pub use js_int::Int;
pub use js_int::UInt;
pub use js_option::JsOption;
Modules
api
canonical-json
events
m.room.power_levels
event.signatures
state-res
Macros
<&DeviceId>::from
.DeviceKeyId
construction.EventId
construction.MxcUri
construction.RoomAliasId
construction.RoomId
construction.RoomVersionId
construction.ServerName
construction.ServerSigningKeyId
construction.UserId
construction.Structs
client-ext-client-api
matrix.to
URI representation of a user, room or event.matrix:
URI representation of a user, room or event.Enums
canonical-json
canonical-json
Type Definitions
canonical-json
CanonicalJsonValue::Object
.