Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/brandonhimpfen/awesome-go

A curated list of awesome Go resources and tips to help you become a more productive and proficient Go developer.
https://github.com/brandonhimpfen/awesome-go

List: awesome-go

Last synced: about 1 month ago
JSON representation

A curated list of awesome Go resources and tips to help you become a more productive and proficient Go developer.

Awesome Lists containing this project

README

        

# Awesome Go [![Awesome Lists](https://srv-cdn.himpfen.io/badges/awesome-lists/awesomelists-flat.svg)](https://github.com/brandonhimpfen/awesome)

[![GitHub](https://srv-cdn.himpfen.io/badges/github/github-flat.svg)](https://github.com/sponsors/brandonhimpfen/)   [![Ko-Fi](https://srv-cdn.himpfen.io/badges/kofi/kofi-flat.svg)](https://ko-fi.com/brandonhimpfen)   [![PayPal](https://srv-cdn.himpfen.io/badges/paypal/paypal-flat.svg)](https://paypal.me/brandonhimpfen)   [![Stripe](https://srv-cdn.himpfen.io/badges/stripe/stripe-flat.svg)](https://tinyurl.com/e8ymxdw3)

> A curated list of awesome Go resources and tips to help you become a more productive and proficient Go developer.

## Table of Contents

- [Official Resources](#official-resources)
- [Community](#community)
- [Learning Resources](#learning-resources)
- [Libraries and Packages](#libraries-and-packages)
- [Tools](#tools)
- [Testing](#testing)
- [Concurrency](#concurrency)
- [Web Development](#web-development)
- [Networking](#networking)
- [Database](#database)
- [Command Line](#command-line)
- [Security](#security)
- [Miscellaneous](#miscellaneous)

## Official Resources

- [Go Official Website](https://golang.org/): The official website of Go programming language.
- [Go Documentation](https://golang.org/doc/): The official Go documentation, including the language specification and standard library reference.
- [Go Playground](https://play.golang.org/): An online Go editor and playground to experiment with Go code snippets.

## Community

- [Gopher Slack](https://invite.slack.golangbridge.org/): A vibrant community of Go developers where you can ask questions and discuss various topics related to Go.
- [Go Forum](https://forum.golangbridge.org/): An online forum dedicated to discussions on Go programming.
- [r/golang](https://www.reddit.com/r/golang/): The Go subreddit where you can find news, articles, and discussions related to Go programming.

## Learning Resources

- [A Tour of Go](https://tour.golang.org/welcome/1): An interactive tutorial that provides a quick introduction to Go programming.
- [Go by Example](https://gobyexample.com/): A collection of hands-on Go examples that cover various Go language features.
- [Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests/): A comprehensive guide to learning Go by writing tests.
- [Go Bootcamp](http://www.golangbootcamp.com/book): An online book that covers the basics of Go programming.
- [Just for Func](https://www.youtube.com/c/justforfunc): A YouTube channel featuring tutorials and discussions on Go programming by Francesc Campoy.
- [Go Time](https://changelog.com/gotime): A podcast that explores topics in the Go programming language.

## Libraries and Packages

- [Gin](https://github.com/gin-gonic/gin): A lightweight web framework for building fast and efficient Go web applications.
- [Echo](https://github.com/labstack/echo): A high-performance, minimalist web framework for Go.
- [GORM](https://github.com/go-gorm/gorm): A powerful and feature-rich ORM library for Go.
- [Viper](https://github.com/spf13/viper): A flexible configuration management library for Go.
- [Mux](https://github.com/gorilla/mux): A powerful HTTP router and URL matcher for building Go web applications.
- [Cobra](https://github.com/spf13/cobra): A library for creating powerful command-line applications in Go.
- [Testify](https://github.com/stretchr/testify): A popular testing toolkit for Go that provides various utilities and assertions.

## Tools

- [GoLand](https://www.jetbrains.com/go/): An IDE for Go programming language developed by JetBrains.
- [Visual Studio Code](https://code.visualstudio.com/): A lightweight and versatile code editor with excellent Go support.
- [Delve](https://github.com/go-delve/delve): A debugger for the Go programming language.
- [GoFmt](https://pkg.go.dev/cmd/gofmt): The official Go formatter that automatically formats Go code according to the language specification.
- [Dep](https://github.com/golang/dep): A dependency management tool for Go projects.
- [Go Report Card](https://goreportcard.com/): A web service that provides a report card for Go projects based on static analysis.
- [Present](https://pkg.go.dev/golang.org/x/tools/cmd/present): A tool for creating and displaying interactive slide presentations in Go.

## Testing

- [Go Testing](https://golang.org/pkg/testing/): The official Go testing package for writing unit tests.
- [Ginkgo](https://github.com/onsi/ginkgo): A BDD-style testing framework for Go that focuses on readability and ease of use.
- [Mockery](https://github.com/vektra/mockery): A tool for generating mock implementations in Go.
- [Testify](https://github.com/stretchr/testify): A popular testing toolkit for Go that provides various utilities and assertions.

## Concurrency

- [Goroutines](https://tour.golang.org/concurrency/1): An introduction to goroutines and concurrent programming in Go.
- [Channels](https://tour.golang.org/concurrency/2): A guide to using channels for communication and synchronization between goroutines.
- [Context](https://golang.org/pkg/context/): The official package for managing and canceling goroutine-based operations.

## Web Development

- [Gin](https://github.com/gin-gonic/gin): A lightweight web framework for building fast and efficient Go web applications.
- [Echo](https://github.com/labstack/echo): A high-performance, minimalist web framework for Go.
- [Fiber](https://github.com/gofiber/fiber): An Express.js-inspired web framework for Go that focuses on speed and simplicity.
- [Buffalo](https://gobuffalo.io/): A web development eco-system for Go that includes a web framework, database migration tools, and more.
- [Chi](https://github.com/go-chi/chi): A lightweight, idiomatic, and composable router for building Go HTTP services.

## Networking

- [Net](https://golang.org/pkg/net/): The official Go package for networking operations.
- [gRPC](https://grpc.io/): A high-performance, open-source framework for building distributed systems with Go.
- [Fasthttp](https://github.com/valyala/fasthttp): A fast HTTP implementation for Go that outperforms the standard library's `net/http` package.
- [Mux](https://github.com/gorilla/mux): A powerful HTTP router and URL matcher for building Go web applications.

## Database

- [GORM](https://github.com/go-gorm/gorm): A powerful and feature-rich ORM library for Go.
- [MongoDB](https://go.mongodb.org/mongo-driver): The official MongoDB driver for Go.
- [PostgreSQL](https://github.com/jackc/pgx): A PostgreSQL driver and toolkit for Go.
- [Redis](https://github.com/go-redis/redis): A Redis client library for Go.

## Command Line

- [Cobra](https://github.com/spf13/cobra): A library for creating powerful command-line applications in Go.
- [Viper](https://github.com/spf13/viper): A flexible configuration management library for Go.
- [Promptui](https://github.com/manifoldco/promptui): A library for creating interactive prompts in Go.
- [Color](https://github.com/fatih/color): A library for adding color and formatting to command-line output in Go.

## Security

- [Secure](https://pkg.go.dev/golang.org/x/crypto/acme/autocert): The official package that provides cryptographic functions and protocols in Go.
- [JWT](https://github.com/golang-jwt/jwt): A JSON Web Token implementation in Go.
- [bcrypt](https://pkg.go.dev/golang.org/x/crypto/bcrypt): The official package for hashing and verifying passwords using the bcrypt algorithm.
- [CORS](https://github.com/rs/cors): A package for handling Cross-Origin Resource Sharing (CORS) in Go.

## Miscellaneous

- [Error Handling](https://blog.golang.org/error-handling-and-go): A blog post that discusses error handling techniques in Go.
- [Go Best Practices](https://dave.cheney.net/practical-go/presentations/qcon-china.html): A collection of Go best practices and tips by Dave Cheney.
- [Go Design Patterns](https://github.com/tmrts/go-patterns): A repository that contains various design patterns implemented in Go.
- [Effective Go](https://golang.org/doc/effective_go.html): The official guide to writing clear, idiomatic, and effective Go code.

## Contribute

Contributions are welcome!

## License

[![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/by-sa.svg)](http://creativecommons.org/licenses/by-sa/4.0/)