Hacker News new | ask | show | jobs
by nf17 1099 days ago
Is JS/Express/Apollo still the goto graphQL server implementation or C#(HotChocolate), Java, go etc are widely used too? On the client side(for mobile), AFAIK iOS(Swift) and Android(Kotlin) does not support GraphQL natively? are there 3rd party libraries that can be used?

Edit: Added Apollo

3 comments

The "go-to" GraphQL server implementation varies based on language.

Here are the popular ones to my knowledge:

- Node.js: GraphQL Yoga + Fastify, Apollo Server

- Java/Kotlin: Netflix DGS (built on top of Spring Boot)

- Scala: Caliban, Sangria

- Python: Strawberry, Graphene Django

- C#: HotChocolate

  > "On the client side(for mobile), AFAIK iOS(Swift) and Android(Kotlin) does not support GraphQL natively?"
GraphQL queries are just HTTP POST queries with a JSON body. They're supported everywhere.

If you want specialized tooling for them, Kotlin and Swift both have great strongly-typed GraphQL libraries.

Apollo publishes libraries for both:

- https://www.apollographql.com/docs/kotlin/

- https://www.apollographql.com/docs/ios/

> Java/Kotlin: Netflix DGS (built on top of Spring Boot)

Is that really popular? I'd rather use graphql-kotlin (expedia), graphql spring (yes, recent Spring module), quarkus graphql (code 1st) or just about anything else than that...

> Node.js: GraphQL Yoga + Fastify, Apollo Server

Typegraphql is / was hugely popular; there's also an Express based Graphql server

Aside: there's also Rust and async-graphql

Apollo is also available for Elixir, where I have seen it much loved.
It appears that fastify can't keep their website up.
Apparently something got messed up with their cloudflare setup and the person with access is at a wedding or something.

https://twitter.com/fastifyjs/status/1670145210347577344?cxt...

I've been using json-api with graphiti in rails. And I gotta say the massive gain from it is that it's all rest and a trivial client impl from scratch if necessary.

Couldn't recommend it more.

Have to say. Most json-api impls suck, so graphiti has been a game changer for me.

N+1 are a problem buuuut it forces you into good model designs and good tools like graphiti and the latest rails show you the cause of the n+1s so it's not so bad to debug.

We've been using Hotchocolate for over a year now I n a project. And the experience has mostly been pretty good.

And pair this with their Blazor client called StrawberryShake. And your production levels are pretty nuts.

So to answer your question, yes people do use other alternatives