Awesome Go


Build Status Awesome Slack Widget Netlify Status Track Awesome List

We use the Golang Bridge community slack for instant communication, follow the form here to join.

awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt


Special thanks to

Quit struggling with scattered API keys and access controls.
Keep your secrets in sync across environments, servers, and teams with Doppler.
Work from anywhere in the world with top tech companies like Riot Games, Coinbase, and Google.
Your app, enterprise-ready.
Start selling to enterprise customers with just a few lines of code.
Add Single Sign-On (and more) in minutes instead of months.
A dead-simple software licensing and distribution API built for developers
Securely license and distribute Go applications with a single API.
Add auto updates with only a few lines of code.
Digital Ocean
workflow smarter, not harder
Make the switch from one-size-fits-all CI/CD to PaaS
workflows & turn k8s into a powerful developer experience
that will measurably increase developer productivity by 200%

Awesome Go has no monthly fee, but we have employees who work hard to keep it running, with money raised we can repay the effort of each person involved! You can see how we calculate our billing and distribution as it is open to the entire community. Want to be a supporter of the project click here.

A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.


Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!

If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!


⬆ back to top

Audio and Music

Libraries for manipulating audio.

⬆ back to top

Authentication and OAuth

Libraries for implementing authentications schemes.

⬆ back to top


Tools for building blockchains.

⬆ back to top

Bot Building

Libraries for building and working with bots.

⬆ back to top

Build Automation

Libraries and tools helping with build automation.

⬆ back to top

Command Line

Advanced Console UIs

Libraries for building Console Applications and Console User Interfaces.

⬆ back to top

Standard CLI

Libraries for building standard or basic Command Line applications.

⬆ back to top


Libraries for configuration parsing.

⬆ back to top

Continuous Integration

Tools for help with continuous integration.

⬆ back to top

CSS Preprocessors

Libraries for preprocessing CSS files.

⬆ back to top

Data Structures and Algorithms

Bit-packing and Compression

Bit Sets

Bloom and Cuckoo Filters

Data Structure and Algorithm Collections



See also Database for more complex key-value stores, and Trees for additional ordered map implementations.

Miscellaneous Data Structures and Algorithms

Nullable Types



Text Analysis



⬆ back to top



Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases. - 2q - 2Q in-memory cache implementation. - bcache - Eventually consistent distributed in-memory cache Go library. - BigCache - Efficient key/value cache for gigabytes of data. - cache - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage. - cache2go - In-memory key:value cache which supports automatic invalidation based on timeouts. - cachego - Golang Cache component for multiple drivers. - clusteredBigCache - BigCache with clustering support and individual item expiration. - couchcache - RESTful caching micro-service backed by Couchbase server. - fastcache - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead. - GCache - Cache library with support for expirable Cache, LFU, LRU and ARC. - gdcache - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache. - go-mcache - Fast in-memory key:value store/cache library. Pointer caches. - gocache - A complete Go cache library with mutiple stores (memory, memcache, redis, …), chainable, loadable, metrics cache and more. - groupcache - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - remember-go - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory). - timedmap - Map with expiring key-value pairs. - ttlcache - An in-memory cache with item expiration and generics. - ttlcache - In-memory key value storage with TTL for each record.

Databases Implemented in Go

Database Schema Migration

Database Tools

SQL Query Builders

Libraries for building and using SQL.

⬆ back to top

Database Drivers

Interfaces to Multiple Backends

Relational Database Drivers

NoSQL Database Drivers

Search and Analytic Databases

⬆ back to top

Date and Time

Libraries for working with dates and times.

⬆ back to top

Distributed Systems

Packages that help with building Distributed Systems.

⬆ back to top

Dynamic DNS

Tools for updating dynamic DNS records.

⬆ back to top


Libraries and tools that implement email creation and sending.

⬆ back to top

Embeddable Scripting Languages

Embedding other languages inside your go code.

⬆ back to top

Error Handling

Libraries for handling errors.

⬆ back to top

File Handling

Libraries for handling files and file systems.

⬆ back to top


Packages for accounting and finance.

⬆ back to top


Libraries for working with forms.

⬆ back to top


Packages to support functional programming in Go.

⬆ back to top

Game Development

Awesome game development libraries.

⬆ back to top


Tools that generate Go code.

⬆ back to top


Geographic tools and servers

⬆ back to top

Go Compilers

Tools for compiling Go to other languages.

⬆ back to top


Tools for managing and working with Goroutines.

⬆ back to top


Libraries for building GUI Applications.



⬆ back to top


Libraries, tools, and tutorials for interacting with hardware.

⬆ back to top


Libraries for manipulating images.

⬆ back to top

IoT (Internet of Things)

Libraries for programming devices of the IoT.

⬆ back to top

Job Scheduler

Libraries for scheduling jobs.

⬆ back to top


Libraries for working with JSON.

⬆ back to top


Libraries for generating and working with log files.

⬆ back to top

Machine Learning

Libraries for Machine Learning.

⬆ back to top


Libraries that implement messaging systems.

⬆ back to top

Microsoft Office

Microsoft Excel

Libraries for working with Microsoft Excel.

⬆ back to top


Dependency Injection

Libraries for working with dependency injection.

⬆ back to top

Project Layout

Unofficial set of patterns for structuring projects.

⬆ back to top


Libraries for working with strings.

⬆ back to top


These libraries were placed here because none of the other categories seemed to fit.

⬆ back to top

Natural Language Processing

Libraries for working with human languages.

See also Text Processing and Text Analysis.

Language Detection

Morphological Analyzers





⬆ back to top


Libraries for working with various layers of the network.

⬆ back to top

HTTP Clients

Libraries for making HTTP requests.

⬆ back to top


Libraries for using OpenGL in Go.

⬆ back to top


Libraries that implement Object-Relational Mapping or datamapping techniques.

⬆ back to top

Package Management

Official tooling for dependency and package management

Official experimental tooling for package management

Unofficial libraries for package and dependency management.

⬆ back to top


⬆ back to top

Query Language

⬆ back to top

Resource Embedding

⬆ back to top

Science and Data Analysis

Libraries for scientific computing and data analyzing.

⬆ back to top


Libraries that are used to help make your application more secure.

⬆ back to top


Libraries and tools for binary serialization.

⬆ back to top

Server Applications

⬆ back to top

Stream Processing

Libraries and tools for stream processing and reactive programming.

⬆ back to top

Template Engines

Libraries and tools for templating and lexing.

⬆ back to top


Libraries for testing codebases and generating test data.

⬆ back to top

Text Processing

Libraries for parsing and manipulating texts.

See also Natural Language Processing and Text Analysis.


Markup Languages


Regular Expressions





⬆ back to top

Third-party APIs

Libraries for accessing third party APIs.

⬆ back to top


General utilities and tools to make your life easier.

⬆ back to top


Libraries for working with UUIDs.

⬆ back to top


Libraries for validation.

⬆ back to top

Version Control

Libraries for version control.

⬆ back to top


Libraries for manipulating video.

⬆ back to top

Web Frameworks

Full stack web frameworks.

⬆ back to top


Actual middlewares

Libraries for creating HTTP middlewares

⬆ back to top


⬆ back to top


⬆ back to top


⬆ back to top


Libraries and tools for manipulating XML.

Zero Trust

Libraries and tools to implement Zero Trust architectures.

Code Analysis

Source code analysis tools, also known as Static Application Security Testing (SAST) Tools.

⬆ back to top

Editor Plugins

Plugin for text editors and IDEs.

⬆ back to top

Go Generate Tools

⬆ back to top

Go Tools

⬆ back to top

Software Packages

Software written in Go.

⬆ back to top

DevOps Tools

⬆ back to top

Other Software

⬆ back to top


Where to discover new Go libraries.

⬆ back to top


⬆ back to top


⬆ back to top


E-books for purchase

Free e-books

⬆ back to top


⬆ back to top


*Add the group of your city/country here (send PR)*

⬆ back to top

Style Guides

⬆ back to top

Social Media


⬆ back to top


⬆ back to top


⬆ back to top


⬆ back to top

Deploys by Netlify