Expand description
A minimal Matrix client library.
§Usage
Begin by creating a Client, selecting one of the type aliases from ruma_client::http_client
for the generic parameter. For the client API, there are login and registration methods
provided for the client (feature client-api):
let homeserver_url = "https://example.com".to_owned();
let client =
ruma_client::Client::builder().homeserver_url(homeserver_url).build::<HttpClient>().await?;
let session = client.log_in("@alice:example.com", "secret", None, None).await?;
// You're now logged in! Write the session to a file if you want to restore it later.
// Then start using the API!You can also pass an existing access token to the Client constructor to restore a previous
session rather than calling log_in. This can also be used to create a session for an
application service that does not need to log in, but uses the access_token directly:
let homeserver_url = "https://example.com".to_owned();
let client = ruma_client::Client::builder()
.homeserver_url(homeserver_url)
.access_token(Some("as_access_token".into()))
.build::<HttpClient>()
.await?;
// make calls to the APIThe Client type also provides methods for registering a new account if you don’t already have
one with the given homeserver.
Beyond these basic convenience methods, ruma-client gives you access to the entire Matrix
client-server API via the request method. You can pass it any of the Request types found in
ruma::api::* and get back a corresponding response from the homeserver.
For example:
use ruma::{
api::{client::alias::get_alias, MatrixVersion},
owned_room_alias_id, room_id,
};
let alias = owned_room_alias_id!("#example_room:example.com");
let response = client.send_request(get_alias::v3::Request::new(alias)).await?;
assert_eq!(response.room_id, room_id!("!n8f893n9:example.com"));§Crate features
The following features activate http client types in the http_client module:
hyperhyper-native-tlshyper-rustlsreqwest– if you use thereqwestlibrary already, activate this feature and configure the TLS backend onreqwestdirectly. If you want to usereqwestbut don’t depend on it already, use one of the sub-features instead. For details on the meaning of these, see reqwest’s documentation:reqwest-native-tlsreqwest-native-tls-alpnreqwest-native-tls-vendoredreqwest-rustls-manual-rootsreqwest-rustls-webpki-rootsreqwest-rustls-native-roots
Re-exports§
pub use ruma;pub use self::http_client::DefaultConstructibleHttpClient;pub use self::http_client::HttpClient;pub use self::http_client::HttpClientExt;
Modules§
- http_
client - This module contains an abstraction for HTTP clients as well as friendly-named re-exports of client types that implement this trait.
Structs§
- Client
client-api - A client for the Matrix client-server API.
- Client
Builder client-api - A
Clientbuilder.
Enums§
- Error
- An error that can occur during client operations.
Type Aliases§
- Response
Error - The error type for sending the request
Rwith the http clientC. - Response
Result - The result of sending the request
Rwith the http clientC.