koanf
Gin
Our great sponsors
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.
koanf
-
Nees help install knadh/koanf
LINK: https://github.com/knadh/koanf
-
App init and graceful watch lib recommendations ?
For configuration, I like Koanf.
-
Two ways to provide configuration: command-line, yaml file.
Of course. You should always use a good config package. caarlos0/env is okay but https://github.com/knadh/koanf is a better all around solution imo.
- Simplify Your Configurations in Go
-
Golang equivalent of Python’s click (CLT framework)
You can also use Viper with urfave/cli, or you can replace Viper with knadh/koanf, which I personally prefer.
-
Viper – Go Configuration with Fangs
Use viper with care. It has some dangerous fundamental flaws [1]. We got bitten hard, submitted a PR [2] and followed up for a year and a half to no avail, before I went ahead and reinvented the wheel and wrote koanf (plug), specifically to avoid viper's flaws.
Most importantly:
- Breaks JSON, YAML, TOML etc. language specs by forcibly lowercasing all keys internally. Dangerous because it can silently merge differently cased config keys into lowercase.
- Hard codes big unnecessary dependencies into the core, significantly bloating build sizes. No separation or abstraction.
[1] https://github.com/spf13/viper/pull/635
[2] https://github.com/knadh/koanf#alternative-to-viper
-
Extracting embedded files
It's not hard to a) look for a key in an environment variable b) accept a key as a parameter c) load a key from a file d) all of the above with something like koanf
- What are some good open source project to read when learning Go?
-
Coral, a friendly Cobra fork with nearly all its features, but only 4 dependencies
Came across this the other day https://github.com/knadh/koanf as an alternative to Viper.
-
What are your favorite packages to use?
https://github.com/knadh/koanf for config management. Readme contains why it's a good alternative to viper.
Gin
-
How to Build and Document a Go REST API with Gin and Go-Swagger
Now let’s define the functions that will be called whenever a request hits our API. All the functions will be referencing the context provided by the Gin web framework. Paste the following code below the sample slice we just added to api.go:
-
Password-less Login in Go from Scratch
We will be using Gorilla Mux. As per their last update, they have a new group of maintainers, and their repos have shown activity to confirm that. The tutorial can be easily replicated in any other framework or library as well. So, while we will be using Gorilla Mux, you can try to replicate it in Gin or Fiber as well.
- Autenticação com Golang e AWS Cognito
-
Implementing JWT Authentication in a Golang Application
Now, let's dive into the fun part – creating our basic ToDo application using the powerful Gin framework. This section will walk you through the steps, breaking down the code into manageable snippets.
-
Build a Serverless GenAI solution with Lambda, DynamoDB, LangChain and Amazon Bedrock
Thanks to the AWS Lambda Web Adapter, the application built as a (good old) REST/HTTP API using a familiar library (in this case, Gin.
-
From Django or Flask to Sponge: How to Easily Develop High-Performance Web Services with Golang
Excellent Performance: Sponge is built on the gin framework, providing outstanding performance for web service development.
-
Uploading and Serving Images from MongoDB in Golang
In this blog, we will delve into the fascinating realm of handling images in a Golang application, leveraging the power of the Gin framework for RESTful API development, MongoDB as a robust NoSQL database, and the mongo-driver library for seamless interaction with MongoDB. To store images efficiently, we'll explore the intricacies of GridFS, a specification within MongoDB for storing large files as separate chunks.
-
Building RESTful API with Hexagonal Architecture in Go
It uses Gin as the HTTP framework and PostgreSQL as the database with pgx as the driver and Squirrel as the query builder. It also utilizes Redis as the caching layer with go-redis as the client.
-
Different CORS settings for different paths?
I have created an application with Go in Gin-Gonic. In my frontend (Nuxt3/TypeScript) I always get a CORS error:
-
Rapid Prototyping of Design-First APIs in Go
We use Gin web framework https://gin-gonic.com for the routing, Gin provides a balance between performance, ease of use and extensibility making it a preferred choice for building and running web applications in Go.
What are some alternatives?
viper - Go configuration with fangs
Fiber - ⚡️ Express inspired web framework written in Go
config - JSON or YAML configuration wrapper with convenient access methods.
mux - A powerful HTTP router and URL matcher for building Go web servers with 🦍
konfig - Composable, observable and performant config handling for Go for the distributed processing era
chi - lightweight, idiomatic and composable router for building Go HTTP services
cleanenv - ✨Clean and minimalistic environment configuration reader for Golang
Echo - High performance, minimalist Go web framework
kelseyhightower/envconfig - Golang library for managing configuration data from environment variables
Beego - beego is an open-source, high-performance web framework for the Go programming language.
go-simple-config - open source for accessing and storing configuration
Iris - The fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio :rocket: