Crate ruma_client[][src]

Expand description

A minimal Matrix client library.


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):

// type MatrixClient = ruma_client::Client<ruma_client::http_client::_>;
let homeserver_url = "".parse().unwrap();
let client = MatrixClient::new(homeserver_url, None);

let session = client
    .log_in("", "secret", None, None)

// 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 work = async {
    let homeserver_url = "".parse().unwrap();
    let client = MatrixClient::new(homeserver_url, Some("as_access_token".into()));

    // make calls to the API

The 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 std::convert::TryFrom;

use ruma_client_api::r0::alias::get_alias;
use ruma_identifiers::{room_alias_id, room_id};

async {
    let response = client

    assert_eq!(response.room_id, room_id!("!"));


pub use self::http_client::DefaultConstructibleHttpClient;
pub use self::http_client::HttpClient;
pub use self::http_client::HttpClientExt;



This module contains an abstraction for HTTP clients as well as friendly-named re-exports of client types that implement this trait.



A client for the Matrix client-server API.



An error that can occur during client operations.

Type Definitions


The error type for sending the request R with the http client C.


The result of sending the request R with the http client C.