#graphql #access-token #mutation #subscription #queries #api-bindings

glimesh

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

16 releases (8 breaking)

0.9.0 Mar 21, 2023
0.8.0 Nov 22, 2021
0.7.0 Oct 26, 2021
0.6.0 Jul 5, 2021
0.5.0 Mar 26, 2021

#110 in WebSocket

MIT/Apache

83KB
1.5K SLoC

glimesh-rs

Crates.io Crates.io Docs.rs

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
  • Subscriptions
  • HTTP or Websocket connection
  • Automatic access token refreshing
  • Reconnect and resubscribe to subscriptions on socket failure

Example

More examples can be found in the examples/ directory.

#[derive(GraphQLQuery)]
#[graphql(
    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
    .query::<UserDetailsQuery>(
        user_details_query::Variables {
            username: "James".into(),
        }
    )
    .await?;

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

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.

Dependencies

~9–24MB
~382K SLoC