#glimesh

glimesh-protocol

Low level structures for interfacing with the glimesh api

4 releases (2 breaking)

Uses new Rust 2021

0.8.0 Nov 22, 2021
0.7.0 Oct 26, 2021
0.6.0 Jul 5, 2021
0.6.0-beta.0 May 21, 2021

#535 in Network programming


Used in glimesh

MIT/Apache

11KB
291 lines

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 glimesh/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

~0.8–1.8MB
~36K SLoC