glimesh 0.1.0

Client for performing queries, mutations, and subscriptions against the Glimesh API.
Documentation

glimesh-rs

Crates.io Crates.io

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.

Features

  • Queries
  • Mutations
  • Http based connection
  • Subscriptions
  • Websocket based connection
  • Reconnect and resubscribe to subscriptions on socket failure
  • Batch subscriptions

Example

More examples can be found in the examples/ directory.

use glimesh::{http::Connection, Auth, Error};
use graphql_client::GraphQLQuery;
use std::env;

#[derive(GraphQLQuery)]
#[graphql(
    schema_path = "examples/schema.json",
    query_path = "examples/user_details.graphql",
    response_derives = "Debug"
)]
pub struct UserDetailsQuery;

#[tokio::main]
async fn main() -> Result<(), Error> {
    let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID env var");

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

    let res = client
        .query::<UserDetailsQuery>(
            user_details_query::Variables {
                username: "James".into(),
            }
        )
        .await?;

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

    Ok(())
}

License

Licensed under either of

at your option.

Contribution

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.