My Golang everyday libraries
Awesome Go is
A curated list of awesome Go frameworks, libraries and software
However the list is quite long and it is hard to decide which solution to take since there can be several libraries in one category.
Here my opiniated awesome list of libraries I have tested and approved. I won't emphasize on the pros or cons here.
Logging
- uber-go/zap Blazing fast, structured, leveled logging in Go.
- Zerolog Zero Allocation JSON Logger: the zerolog package provides a fast and simple logger dedicated to JSON output.
Web framework
- Go fiber Fiber is a Go web framework built on top of Fasthttp. It's designed to ease things up for fast development with zero memory allocation and performance in mind.
- Go echo High performance, extensible, minimalist Go web framework
Env
- caarlos0/env A simple and zero-dependencies library to parse environment variables into structs.
SQL
- sqlx sqlx is a library which provides a set of extensions on go's standard database/sql library
- pgx pgx is a pure Go driver and toolkit for PostgreSQL.
SQL migration tools
- Goose Goose is a database migration tool. Manage your database schema by creating incremental SQL changes or Go functions.
- sql-migrate SQL Schema migration tool for Go. Based on gorp and goose.
Command line interface
- urfave/cli cli is a simple, fast, and fun package for building command line apps in Go. The goal is to enable developers to write fast and distributable command line applications in an expressive way.
Scraping
- Colly Lightning Fast and Elegant Scraping Framework which provides a clean interface to write any kind of crawler/scraper/spider.
Pretty print
- k0kubun/pp A Colored pretty printer for Go
Hot reloading
- air for live reload
Recommended readings (not libraries)
- Three Dots Labs is not a library but such an interesting place to read. You will find there seasoned Golang developper articles with their struggles, advices...
- Bitfieldconsulting another blog from a passionate Go developper.
- 100 Go Mistakes and How to Avoid Them: "Spot errors in your Go code you didn’t even know you were making and boost your productivity by avoiding common mistakes and pitfalls."