JonasKruckenberg/tauri-plugin-graphql

use async-graphql over juniper

Closed this issue · 5 comments

async-graphql is another gql framework for rust and overall, it seems to be better than juniper according to their comparison. I'ved used both and async-graphql seems better to work with

Interesting! I actually wasn't aware of this async-graphql crate. I cannot promise anything however, as there are many projects that need attention and this would be s fairly substantial rewrite. I'm happy to review+accept a PR however!

Interesting! I actually wasn't aware of this async-graphql crate. I cannot promise anything however, as there are many projects that need attention and this would be s fairly substantial rewrite. I'm happy to review+accept a PR however!

I might PR this for a better DX with the app I'm currently working on as duplicating types is really annoying rn. Subscriptions could also be very helpful with the app. I'll start making a PR soon

The current version of the plugin has subscriptions too, just FIY. It's just hidden behind the subscriptions flag bc it adds another dependency.

The current version of the plugin has subscriptions too, just FIY. It's just hidden behind the subscriptions flag bc it adds another dependency.

I know, I just prefer async-graphqls impl over juniper

@Suyashtnt I think I like async-graphql better too, it has more integrations so is probably the better choice anyway.

The only thing I particularly dislike is the way you access shared state (the app handle or window)

struct Query;

#[Object]
impl Query {
    async fn hello(&self, ctx: Context<'_>) {
      let app = ctx.data::<AppHandle>().unwrap();
      let window = ctx.data::<Window>().unwrap();
   }
}

Maybe you have any idea to do this in a better way somehow 🤔

Anyway, please test the PR branch if you have the chance and report if it works 👍🏻