awesome-go
A curated list of awesome Go frameworks, libraries and software
A curated index of Go frameworks, libraries, and tools organized by category, helping developers find well-maintained packages for any task.
Awesome Go is a curated list of Go frameworks, libraries, and software. The README opens by saying it was inspired by awesome-python, links to the Golang Bridge community Slack, and describes itself with one tagline: a curated list of awesome Go frameworks, libraries, and software. The repository itself is mostly a long markdown index, organized into category headings that maintainers and contributors keep up to date through pull requests.
The Contents section gives a fair picture of how broad the list is. Top-level categories include Actor Model, Artificial Intelligence, Audio and Music, Authentication and Authorization, Blockchain, Bot Building, Build Automation, Command Line, Configuration, Continuous Integration, CSS Preprocessors, Data Integration Frameworks, Data Structures and Algorithms, Database, Database Drivers, Date and Time, Distributed Systems, Dynamic DNS, Email, Embeddable Scripting Languages, Error Handling, File Handling, Financial, Forms, Functional, Game Development, Generators, Geographic, Go Compilers, Goroutines, GUI, Hardware, Images, IoT, Job Scheduler, JSON, Logging, Machine Learning, Messaging, Microsoft Office, Natural Language Processing, Networking, OpenGL, ORM, Package Management, Performance, Query Language, Reflection, Resource Embedding, Science and Data Analysis, Security, Serialization, Server Applications, Stream Processing, Template Engines, Testing, Text Processing, Third-party APIs, Utilities, UUID, Validation, Version Control, Video, Web Frameworks, and WebAssembly.
Many categories are broken into subsections. Data Structures and Algorithms, for example, splits into bit-packing and compression, bit sets, bloom and cuckoo filters, iterators, maps, queues, sets, text analysis, and trees. Database splits into caches, databases written in Go, schema migration, database tools, and SQL query builders. Testing splits into testing frameworks, mocks, fuzzing, browser control, and fail injection. Web Frameworks splits into middlewares and routers.
The README mentions a hosted site at awesome-go.com, a Netlify deployment, and a build pipeline run through GitHub Actions. It points contributors to a CONTRIBUTING.md file and asks people to open pull requests when they see a package that is no longer maintained or no longer a good fit. Someone would use this list when they are starting work in Go and want one place to scan the established libraries in a given area, rather than searching package registries one query at a time.
Where it fits
- Find a database driver or ORM when starting a new Go backend project.
- Discover a web framework or router that fits your application needs.
- Locate testing libraries, CLI tools, or authentication packages for your Go service.
- Learn what established packages exist in the Go ecosystem across different domains.