viper
godotenv
viper | godotenv | |
---|---|---|
78 | 20 | |
28,104 | 8,931 | |
1.4% | 2.3% | |
8.7 | 3.7 | |
1 day ago | 3 months ago | |
Go | Go | |
MIT License | 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.
viper
-
Top 5 Go Libraries Every Backend Developer Should Know
5. Viper
-
A Guide to Configuration Management in Go with Viper
Managing configurations efficiently is a cornerstone of building scalable and maintainable software. In Go, the Viper package đ stands out as a robust solution for managing application configurations. With support for multiple file formats, environment variables, and seamless unmarshaling to structs, Viper simplifies configuration management for modern applications.
-
Show HN: CREV â A Go-based CLI tool for AI code reviews and codebase exports
- Terminal-Based Workflow: CREV is a CLI tool, removing the need to switch between your editor and the browser.
I have written the CREV CLI tool in Go as I was interested in learning the language and I heard many good things about itâs efficiency and speed. I used https://github.com/spf13/cobra to manage the CLI commands and [Viper](https://github.com/spf13/viper) for handling configurations. This is the first project I have done with Go but I find the language interesting and the Go routines also help with reading in your entire codebase. For the code reviews themselves I use google cloud functions which invoke GPT-4o (am also planning to add Claude 3.5 and GPT-o1).
Iâd love to hear your feedbackâwhether itâs ideas for new features or reasons why you believe this tool is useful or useless to you. I am using it daily so it at least solved my own problem :)
-
Building a RESTful API with Go Fiber: An Express-Inspired Boilerplate
Environment variables: using Viper
-
Upload and Delete file from Amazon S3 Bucket in Go using Presigned URLs
Once environment variables are setup we need load them into our project. For this this i will use viper
-
Proxy Server in Go
The code uses Viper to load configuration files in the application.
- API completa em Golang - Parte 2
-
What 3rd-party libraries do you use often/all the time?
github.com/spf13/viper
- API completa em Golang - Parte 1
-
Building RESTful API with Hexagonal Architecture in Go
Instead of directly accessing environment variables with os.Getenv(), integrating a configuration handler like viper might make it maintainable.
godotenv
-
Building a Google Drive Downloader in Golang (Part 1)
Create a .env file in root or handle environment variables however you like, we'll use joho/godotenv package.
-
Creating a Bot for Bluesky Social
err := godotenv.Load(): We use the godotenv package to be able to access the variables of the .env locally.
-
Authentication with Golang and AWS Cognito
First we will load our envs with the godotenv package, then we start our cognito client, passing the COGNITO_CLIENT_ID, which we got earlier, then we start gin and create a server, that's enough.
-
Autenticação com Golang e AWS Cognito
Primeiro vamos carregar nossas envs com o pacote godotenv, depois iniciamos nosso cognito client, passando o COGNITO_CLIENT_ID, que pegamos anteriormente, depois iniciamos o gin e criamos um server, isso ĂŠ o suficiente.
-
Tools besides Go for a newbie
IDE: use whatever make you productive. I personally use vscode. VCS: git, as golang communities use github heavily as base for many libraries. AFAIK Linter: use staticcheck for linting as it looks like mostly used linting tool in go, supported by many also. In Vscode it will be recommended once you install go plugin. Libraries/Framework: actually the standard libraries already included many things you need, decent enough for your day-to-day development cycles(e.g. `net/http`). But here are things for extra: - Struct fields validator: validator - Http server lib: chi router , httprouter , fasthttp (for non standard http implementations, but fast) - Web Framework: echo , gin , fiber , beego , etc - Http client lib: most already covered by stdlib(net/http), so you rarely need extra lib for this, but if you really need some are: resty - CLI: cobra - Config: godotenv , viper - DB Drivers: sqlx , postgre , sqlite , mysql - nosql: redis , mongodb , elasticsearch - ORM: gorm , entgo , sqlc(codegen) - JS Transpiler: gopherjs - GUI: fyne - grpc: grpc - logging: zerolog - test: testify , gomock , dockertest - and many others you can find here
-
Reading Environment Variable from a .env file on a Server
In his code it is done using https://github.com/joho/godotenv
- Libraries you use most of your projects?
-
Restful API with Golang practical approach
envconfig: Library for managing configuration data from environment variables (https://github.com/joho/godotenv)
-
Is this clear why its useful?
There is already a more complete, safer and neatly written godotenv alternative. It may be taken as an educational inspiration for next attempts.
-
I need some help setting up variables for the sake of my sanity
Chances are you are going to set them in you real server, and most likely you will going to use Linux for that. So for local development create a .env file with those in there. And at the start of you program, load them. You can use https://github.com/joho/godotenv Donât share that file of course, and donât put it in git.
What are some alternatives?
koanf - Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
gotenv - Load environment variables from `.env` or `io.Reader` in Go.
envconfig - Small library to read your configuration from environment variables
structs - Golang struct operations.
cleanenv - â¨Clean and minimalistic environment configuration reader for Golang
delve - Delve is a debugger for the Go programming language.