What does HackerNews think of gqlgen?

go generate based graphql server library

Language: Go

#56 in Go
#14 in GraphQL
I built and maintained open source frameworks in both. I left PHP for Go.

1. with http://sqlc.dev I don't have to write ORM or model code anymore. Define all your SQL in an easy to audit file and all your models and interfaces are generated for you.

2. with http://goa.design I can have well-documented OpenAPI API's that any team can generate a client for in any language. It also generates the HTTP JSON and gRPC clients/servers for me so I can focus on my logic.

3. with https://github.com/99designs/gqlgen I can define GraphQL revolvers that play well with sqlc (any RDBMS) or I can use a key-value store.

4. speaking of key-value stores, Go allows them to be embedded! Even SQLite now has the https://litestream.io/ project to make it super simple to use a durable, always backed-up SQLite database even in a serverless context.

Go is faster, uses less memory, uses types, has built-in formatting, package management, benchmarking and testing. Go supports multiple cores in the same process, and has really-well designed stdlib without all the bugs I used to face trying to use the PHP stdlib.

After writing millions of lines of PHP for years, there is nothing I miss anymore. Laravel still wants me to write models, controllers and views by hand and make all the client changes as by-hand code refactors.

Go lets me focus on the actual logic instead of waste my time in PHP writing all the implementation details like controller requests handlers, db fetching logic, and input validation.

I have no experience in Django but in Ent with GraphQL.

Ent is not a full-featured web framework so you need to implement many of features by your own or use other libraries (e.g. http server and session management).

If you are only looking for ORM + GraphQL then I highly recommend trying Entgql, an Ent extension for GraphQL with Gqlgen library [1]. Once you define an ORM schema, it will generate GraphQL Query for Relay server. Still you need to implement GraphQL Mutations by your own but at least it will create Input types for you (both for Create/Update).

[1]: https://github.com/99designs/gqlgen

Interested to understand how does this compares and relates to https://github.com/99designs/gqlgen. Especially in the area of type system, is this reflection based, materialized types?
Go is a great language for building GraphQL servers, the https://github.com/99designs/gqlgen library helps you by build type-safe GraphQL servers and reduces the boilerplate. You can find an example here: https://github.com/prisma/prisma-examples/tree/master/go/gra...

Otherwise I'd recommend TypeScript - the tooling ecosystem around GraphQL is definitely most advanced in the JS space. If you're interested, you can check out an example here: https://github.com/prisma/prisma-examples/tree/master/typesc...