#graphql #glimesh

glimesh

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

15 releases (7 breaking)

Uses new Rust 2021

0.8.0 Nov 22, 2021
0.6.1 Aug 25, 2021
0.6.0 Jul 5, 2021
0.5.0 Mar 26, 2021

#43 in HTTP client

45 downloads per month

MIT/Apache

80KB
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–14MB
~306K SLoC

xӛa