awesome-go Awesome Go

Build Status Awesome Slack Widget Netlify Status

Sponsorships

Digital Ocean

We have no monthly cost, but we have employees working hard to maintain the Awesome Go, with money raised we can repay the effort of each person involved! All billing and distribution will be open to the entire community.

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

Audio and Music

Libraries for manipulating audio.

Authentication and OAuth

Libraries for implementing authentications schemes.

Bot Building

Libraries for building and working with bots.

Build Automation

Libraries and tools helping with build automation.

Command Line

Standard CLI

Libraries for building standard or basic Command Line applications.

Advanced Console UIs

Libraries for building Console Applications and Console User Interfaces.

Configuration

Libraries for configuration parsing.

Continuous Integration

Tools for help with continuous integration.

CSS Preprocessors

Libraries for preprocessing CSS files.

Data Structures

Generic datastructures and algorithms in Go.

Database

Databases implemented in Go.

Database schema migration.

Database tools.

SQL query builder, libraries for building and using SQL.

Database Drivers

Libraries for connecting and operating databases.

Date and Time

Libraries for working with dates and times.

Distributed Systems

Packages that help with building Distributed Systems.

Dynamic DNS

Tools for updating dynamic DNS records.

Email

Libraries and tools that implement email creation and sending.

Embeddable Scripting Languages

Embedding other languages inside your go code.

Error Handling

Libraries for handling errors.

File Handling

Libraries for handling files and file systems.

Financial

Packages for accounting and finance.

Forms

Libraries for working with forms.

Functional

Packages to support functional programming in Go.

Game Development

Awesome game development libraries.

Generation and Generics

Tools to enhance the language with features like generics via code generation.

Geographic

Geographic tools and servers

Go Compilers

Tools for compiling Go to other languages.

Goroutines

Tools for managing and working with Goroutines.

GUI

Libraries for building GUI Applications.

Toolkits

Interaction

Hardware

Libraries, tools, and tutorials for interacting with hardware.

See go-hardware for a comprehensive list.

Images

Libraries for manipulating images.

IoT (Internet of Things)

Libraries for programming devices of the IoT.

Job Scheduler

Libraries for scheduling jobs.

JSON

Libraries for working with JSON.

Logging

Libraries for generating and working with log files.

Machine Learning

Libraries for Machine Learning.

Messaging

Libraries that implement messaging systems.

Microsoft Office

Microsoft Excel

Libraries for working with Microsoft Excel.

Miscellaneous

Dependency Injection

Libraries for working with dependency injection.

Project Layout

Unofficial set of patterns for structuring projects.

Strings

Libraries for working with strings.

Uncategorized

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

Natural Language Processing

Libraries for working with human languages.

Networking

Libraries for working with various layers of the network.

HTTP Clients

Libraries for making HTTP requests.

OpenGL

Libraries for using OpenGL in Go.

ORM

Libraries that implement Object-Relational Mapping or datamapping techniques.

Package Management

Official tooling for dependency and package management

Official experimental tooling for package management

Unofficial libraries for package and dependency management.

Performance

Query Language

Resource Embedding

Science and Data Analysis

Libraries for scientific computing and data analyzing.

Security

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

Serialization

Libraries and tools for binary serialization.

Server Applications

Stream Processing

Libraries and tools for stream processing and reactive programming.

Template Engines

Libraries and tools for templating and lexing.

Testing

Libraries for testing codebases and generating test data.

Text Processing

Libraries for parsing and manipulating texts.

Third-party APIs

Libraries for accessing third party APIs.

Utilities

General utilities and tools to make your life easier.

UUID

Libraries for working with UUIDs.

Validation

Libraries for validation.

Version Control

Libraries for version control.

Video

Libraries for manipulating video.

Web Frameworks

Full stack web frameworks.

Middlewares

Actual middlewares

Libraries for creating HTTP middlewares

Routers

WebAssembly

Windows

XML

Libraries and tools for manipulating XML.

Tools

Go software and plugins.

Code Analysis

Editor Plugins

Go Generate Tools

Go Tools

Software Packages

Software written in Go.

DevOps Tools

Other Software

Resources

Where to discover new Go libraries.

Benchmarks

Conferences

E-Books

Gophers

Meetups

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

Style Guides

Social Media

Twitter

Reddit

Websites

Tutorials