Crate glimesh[][src]

Expand description

A wrapper around graphql_client for easier use with Glimesh. This is currently a work in progress, and should be considered beta, but it is being used to power Oaty in production.


  • Queries
  • Mutations
  • Subscriptions
  • HTTP or Websocket connection
  • Automatic access token refreshing
  • Reconnect and resubscribe to subscriptions on socket failure


More examples can be found in the examples/ directory.

    schema_path = "examples/graphql/schema.json",
    query_path = "examples/graphql/user_details.graphql",
    response_derives = "Debug"
pub struct UserDetailsQuery;

let auth = Auth::client_id(client_id);
let conn = Connection::new(auth);
let client = conn.into_client();

let res = client
        user_details_query::Variables {
            username: "James".into(),

let user = res.user;
println!("User details: {:#?}", user);


Licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE or
  • MIT license (LICENSE-MIT or

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


Connection over http using reqwest.

Hybrid connection that can use a different connection for subscriptions vs querues & mutations.

Connection over WebSockets.


Stored information about the access token

Glimesh client. The client is generic over its connection/transport, meaning it can be used with http or websockets (or any future transport Glimesh might support).

Wraps a Stream to add Drop/Unsubscribe handling.


Authentication method. The Glimesh API requires an authentication method to be used. The most basic is the ClientId method, which gives you read only access to the api.

Errors that can occur obtaining and refreshing access tokens

Errors that can occur when interacting with the Glimesh API.

Errors that can occur using the http based connection

Errors that can occur using the websocket based connection


Connections that implement this support graphql mutations.

Connections that implement this support graphql queries.

Connections that implement this support graphql subscriptions.