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.

Sponsorships:

Special thanks to

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.

Contributing:

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!

Contents

⬆ back to top

Audio and Music

Libraries for manipulating audio.

⬆ back to top

Authentication and OAuth

Libraries for implementing authentication schemes.

⬆ back to top

Blockchain

Tools for building blockchains.

⬆ back to top

Bot Building

Libraries for building and working with bots.

⬆ back to top

Build Automation

Libraries and tools help 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

Configuration

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

Iterators

Maps

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

Miscellaneous Data Structures and Algorithms

Nullable Types

Queues

Sets

Text Analysis

Trees

Pipes

⬆ back to top

Database

Caches

Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases.

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

Email

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

Financial

Packages for accounting and finance.

⬆ back to top

Forms

Libraries for working with forms.

⬆ back to top

Functional

Packages to support functional programming in Go.

⬆ back to top

Game Development

Awesome game development libraries.

⬆ back to top

Generators

Tools that generate Go code.

⬆ back to top

Geographic

Geographic tools and servers

⬆ back to top

Go Compilers

Tools for compiling Go to other languages.

⬆ back to top

Goroutines

Tools for managing and working with Goroutines.

⬆ back to top

GUI

Libraries for building GUI Applications.

Toolkits

Interaction

⬆ back to top

Hardware

Libraries, tools, and tutorials for interacting with hardware.

⬆ back to top

Images

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

JSON

Libraries for working with JSON.

⬆ back to top

Logging

Libraries for generating and working with log files.

⬆ back to top

Machine Learning

Libraries for Machine Learning.

⬆ back to top

Messaging

Libraries that implement messaging systems.

⬆ back to top

Microsoft Office

Microsoft Excel

Libraries for working with Microsoft Excel.

⬆ back to top

Miscellaneous

Dependency Injection

Libraries for working with dependency injection.

⬆ back to top

Project Layout

Unofficial set of patterns for structuring projects.

⬆ back to top

Strings

Libraries for working with strings.

⬆ back to top

Uncategorized

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

Slugifiers

Tokenizers

Translation

Transliteration

⬆ back to top

Networking

Libraries for working with various layers of the network.

⬆ back to top

HTTP Clients

Libraries for making HTTP requests.

⬆ back to top

OpenGL

Libraries for using OpenGL in Go.

⬆ back to top

ORM

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

Performance

⬆ 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

Security

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

⬆ back to top

Serialization

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

Testing

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.

Formatters

Markup Languages

Parsers/Encoders/Decoders

Regular Expressions

Sanitation

Scrapers

RSS

Utility/Miscellaneous

⬆ back to top

Third-party APIs

Libraries for accessing third party APIs.

⬆ back to top

Utilities

General utilities and tools to make your life easier.

⬆ back to top

UUID

Libraries for working with UUIDs.

⬆ back to top

Validation

Libraries for validation.

⬆ back to top

Version Control

Libraries for version control.

⬆ back to top

Video

Libraries for manipulating video.

⬆ back to top

Web Frameworks

Full stack web frameworks.

⬆ back to top

Middlewares

Actual middlewares

Libraries for creating HTTP middlewares

⬆ back to top

Routers

⬆ back to top

WebAssembly

⬆ back to top

Windows

⬆ back to top

XML

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

Resources

Where to discover new Go libraries.

⬆ back to top

Benchmarks

⬆ back to top

Conferences

⬆ back to top

E-Books

E-books for purchase

Free e-books

⬆ back to top

Gophers

⬆ back to top

Meetups

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

⬆ back to top

Style Guides

⬆ back to top

Social Media

Twitter

⬆ back to top

Reddit

⬆ back to top

Websites

⬆ back to top

Tutorials

⬆ back to top

Guided Learning

⬆ back to top