natscli
gqlgen
Our great sponsors
natscli | gqlgen | |
---|---|---|
9 | 43 | |
427 | 9,630 | |
6.1% | 1.5% | |
9.2 | 9.3 | |
3 days ago | 2 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
natscli
-
High-Performance server for NATS.io, the cloud and edge native messaging system
Nats provides a nice CLI that can help with debugging: https://github.com/nats-io/natscli
Besides that I'm also working on a UI solution, that will help to get better overview of your cluster: https://qaze.app/
-
Can you do any jetstream commands via telnet?
You should just use the `nats` CLI tool (https://github.com/nats-io/natscli/) instead.
- Kronos: schedule your recurring webhooks invocation with failure notifications
-
How to build a go library that supports i18n and make these translations available to client apps (CLI ONLY)
This cli is used by NATS cli which itself needs to use json schema to drive it and so shows the concept of using data to drive itself at https://github.com/nats-io/natscli
-
Introduction to NATS CLI
In this article, we’ll take a look at NATS CLI and learn some basics commands. In my opinion NATS CLI is quite underrated, it offers many features and can help eliminate most of the manual scripts used to manage a NATS server.
-
Real-time monitoring with nats-top
Now let’s use the NATS CLI and do a simple benchmark to generate some publish/subscribe events.
-
Getting started with NATS on SLE Micro
Next, we will need the NATS CLI. We can simply install it for Linux from the GitHub releases page.
-
GraphQL subscriptions at scale with NATS
NATS CLI
-
Embedding NATS in Go
While running nats server using cli or docker container is usually the preferred way but in some instances, it can be unnecessary, one such example is testing. While testing, it’s often cumbersome to spin up new instances for external services, this can be completely avoided by using an in-memory server. Luckily, NATS server package provides this functionality out of the box!
gqlgen
-
Who moved my error codes? Adding error types to your GoLang GraphQL Server
GraphQL’s spec, as it turns out, does not specify how servers should handle internal errors at all, leaving it entirely to the choice of the frameworks’ creators. Take for example our GoLang GraphQL framework of choice - gqlgen. It makes no distinction between intentional and unexpected errors: all errors are returned as-is to the client within the error message. Internal errors, which often contain sensitive information like network details and internal URIs, would leak to clients easily if not caught manually by the programmer.
-
“Go is hard to justify unless at massive scale”
Better look into this one: https://github.com/99designs/gqlgen for GraphQL powered by Go. It's spec first approach and requires the least boilerplate code to write. It also incorporates seamlessly with Apollo Federation.
-
Go with PHP
I left PHP for Go.
- with http://sqlc.dev I don't have to write ORM or model code anymore.
- with http://goa.design I can have well-documented API's that any team can generate a client for in any language. It also generates the HTTP JSON and gRPC servers for me so I can focus on my logic.
- 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.
- 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, and has really-well designed stdlib without all the bugs I used to face trying to use the PHP stdlib.
-
Golang tech stack
Gqlgen if I need GraphQL
-
Scalable APIs with GraphQL Server Codegen Preset
Some of these features are inspired by gqlgen so check it out if you need a Golang GraphQL server implementation.
-
How to develop a Web app in go
If you want to use GraphQL: https://github.com/99designs/gqlgen
-
Libraries you use most of your projects?
In addition to the ones you mentioned, I also always use: + sqlc - Compile SQL to type-safe code + gqlgen - generate GraphQL server from schema + oapi-codegen - Go client and server boilerplate from OpenAPI 3 specifications + pester - Go http calls with retries and backoff + backoff - exponential backoff algorithm in Go
-
Ent: An Entity Framework for Go
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
-
Best packages?
gqlgen for GraphQL services. It's well documented and maintained.
-
Decent examples querying models from Postgres
For me sqlc work wonders. If you are developing a user facing api and are fine to go with graphql, with gqlgen you can even autobind (search the page for @goModel) the models that sqlc generates from your queries. A glorious match
What are some alternatives?
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
graphql-go - GraphQL server with a focus on ease of use
tutorials - This repository contains all the code snippets from articles and videos
Fiber - ⚡️ Express inspired web framework written in Go
fisk - A fluent-style, type-safe command-line parser for Go.
Gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
go-i18n - Translate your Go program into multiple languages.
Echo - High performance, minimalist Go web framework
graphql-playground - 🎮 GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration)
go-kit - A standard library for microservices.
foundation - GraphQL Foundation Charter and Legal Documents
fasthttprouter - A high performance fasthttp request router that scales well