Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-go
https://github.com/GoldGrandMaster/awesome-go
Last synced: 4 days ago
JSON representation
-
Sponsorships
-
Contributing
- contribution guidelines - go/graphs/contributors); you rock!
-
Command Line
-
Standard CLI
- hiboot cli - cli application framework with auto configuration and dependency injection.
- 1build - Command line tool to frictionlessly manage project-specific commands.
- argparse - Command line argument parser inspired by Python's argparse module.
- argv - Go library to split command line string as arguments array using the bash syntax.
- cli - Feature-rich and easy to use command-line package based on golang struct tags.
- cli - Simple and complete API for building command line interfaces in Go.
-
Advanced Console UIs
- gommon/color - Style terminal text.
-
-
Configuration
-
Advanced Console UIs
- gone/jconf - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.
-
-
Database
-
Advanced Console UIs
- hasql - Library for accessing multi-host SQL database installations.
- go-cache - In-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
- ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB.
- go-mysql-elasticsearch - Sync your MySQL data into Elasticsearch automatically.
- octillery - Go package for sharding databases ( Supports every ORM or raw SQL ).
- orchestrator - MySQL replication topology manager & visualizer.
- pREST - Serve a RESTful API from any PostgreSQL database.
- vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
- Dotsql - Go library that helps you keep sql files in one place and use them with ease.
- xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.
-
-
Distributed Systems
-
Advanced Console UIs
- dynamolock - DynamoDB-backed distributed locking implementation.
- pglock - PostgreSQL-backed distributed locking implementation.
- raft - Go implementation of the Raft consensus protocol, by CoreOS.
- resgate - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly.
- KrakenD - Ultra performant API Gateway framework with middlewares.
- NATS - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.
-
-
File Handling
-
Advanced Console UIs
- stl - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading.
-
-
Financial
-
Advanced Console UIs
- fastme - Fast extensible matching engine Go implementation.
- go-finance - Comprehensive financial markets data in Go.
-
-
Goroutines
-
IoT (Internet of Things)
-
Advanced Console UIs
- periph - Peripherals I/O to interface with low-level board facilities.
-
-
Logging
-
Advanced Console UIs
- gone/log - Fast, extendable, full-featured, std-lib source compatible log library.
-
-
Miscellaneous
-
Uncategorized
- go-openapi - Collection of packages to parse and utilize open-api schemas.
- VarHandler - Generate boilerplate http input and output handling.
-
-
Networking
-
ORM
-
Resource Embedding
-
HTTP Clients
- go-embed - Generates go code to embed resource files into your library or executable.
-
-
Security
-
HTTP Clients
- Interpol - Rule-based data generator for fuzzing and penetration testing.
- themis - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps.
- acmetool - ACME (Let's Encrypt) client tool with automatic renewal.
-
-
Server Applications
-
HTTP Clients
- consul - Consul is a tool for service discovery, monitoring and configuration.
- etcd - Highly-available key value store for shared configuration and service discovery.
- Flagr - Flagr is an open-source feature flagging and A/B testing service.
- flipt - A self contained feature flag solution written in Go and Vue.js
- RoadRunner - High-performance PHP application server, load-balancer and process manager.
-
-
Testing
-
HTTP Clients
- gocheck - More advanced testing framework alternative to gotest.
- badio - Extensions to Go's `testing/iotest` package.
- frisby - REST API testing framework.
- GoConvey - BDD-style framework with web UI and live reload.
- godog - Cucumber or Behat like BDD framework for Go.
- GoSpec - BDD-style testing framework for the Go programming language.
- restit - Go micro framework to help writing RESTful API integration test.
- chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
-
-
Text Processing
-
HTTP Clients
- gommon/bytes - Format bytes to string.
- colly - Fast and Elegant Scraping Framework for Gophers.
- did - DID (Decentralized Identifiers) Parser and Stringer in Go.
- encdec - Package provides a generic interface to encoders and decodersa.
- parseargs-go - string argument parser that understands quotes and backslashes.
- xj2go - Convert xml or json to go struct.
-
-
Audio and Music
-
Contents
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.
- gaad - Native Go AAC bitstream parser.
- go-sox - libsox bindings for go.
- GoAudio - Native Go Audio Processing Library.
- gosamplerate - libsamplerate bindings for go.
- id3v2 - ID3 decoding and encoding library for Go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- mix - Sequence-based Go-native audio mixer for music apps.
- mp3 - Native Go MP3 decoder.
- music-theory - Music theory models in Go.
- Oto - A low-level library to play sound on multiple platforms.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- portmidi - Go bindings for PortMidi.
- vorbis - "Native" Go Vorbis decoder (uses CGO, but has no dependencies).
- waveform - Go package capable of generating waveform images from audio streams.
-
-
Third-party APIs
-
HTTP Clients
- go-twitch - Go client for interacting with the Twitch v3 API.
- githubql - Go library for accessing the GitHub GraphQL API v4.
- google - Auto-generated Google APIs for Go.
- clarifai - Go client library for interfacing with the Clarifai API.
- google-cloud - Google Cloud APIs Go Client Library.
- google-email-audit-api - Go client library for [Google G Suite Email Audit API](https://developers.google.com/admin-sdk/email-audit/).
- libgoffi - Library adapter toolbox for native [libffi](http://sourceware.org/libffi/) integration
- translate - Go online translation package.
-
-
Utilities
-
HTTP Clients
- go-safe - Panic-safe sandbox.
- cmd - Library for executing shell commands on osx, windows and linux.
- goreporter - Golang tool that does static analysis, unit testing, code review and generate code quality report.
- hub - wrap git commands with additional functionality to interact with github from the terminal.
- lets-go - Go module that provides common utilities for Cloud Native REST API development. Also contains AWS Specific utilities.
- usql - usql is a universal command-line interface for SQL databases.
-
-
Web Frameworks
-
Middlewares
-
HTTP Clients
- aah - Scalable, performant, rapid development Web framework for Go.
- Banjo - Very simple and fast web framework for Go.
- REST Layer - Framework to build REST/GraphQL API on top of databases with mostly configuration over code.
-
-
Code Analysis
-
Routers
- GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
- Golint online - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package.
- goreturns - Adds zero-value return statements to match the func return types.
- gosimple - gosimple is a linter for Go source code that specialises on simplifying code.
- staticcheck - staticcheck is `go vet` on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.
- unused - unused checks Go code for unused constants, variables, functions and types.
- tarp - tarp finds functions and methods without direct unit tests in Go source code.
-
-
Editor Plugins
-
Routers
- Go plugin for JetBrains IDEs - Go plugin for JetBrains IDEs.
- goprofiling - This extension adds benchmark profiling support for the Go language to VS Code.
-
-
Go Generate Tools
-
Routers
- re2dfa - Transform regular expressions into finite state machines and output Go source code.
-
-
Go Tools
-
Routers
- gb - An easy to use project based build tool for the Go programming language.
- generator-go-lang - A [Yeoman](http://yeoman.io) generator to get new Go projects started.
- gilbert - Build system and task runner for Go projects.
- OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.
-
-
Software Packages
-
DevOps Tools
- Gogs - A Self Hosted Git Service in the Go Programming Language.
- Wide - Web-based IDE for Teams using Golang.
- govvv - “go build” wrapper to easily add version information into Go binaries.
- Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
- traefik - Reverse proxy and load balancer with support for multiple backends.
-
Other Software
- syncthing - Open, decentralized file synchronization tool and protocol.
- tsuru - Extensible and open source Platform as a Service software.
- borg - Terminal based search engine for bash snippets.
- Gor - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time.
- Seaweed File System - Fast, Simple and Scalable Distributed File System with O(1) disk seek.
- vFlow - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector.
-
-
Authentication and OAuth
-
Contents
- authboss - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time.
- branca - Golang implementation of Branca Tokens.
- casbin - Authorization library that supports access control models like ACL, RBAC, ABAC.
- cookiestxt - provides parser of cookies.txt file format.
- go-email-normalizer - Golang library for providing a canonical representation of email address.
- go-guardian - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token and Certificate based authentication.
- go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.
- go-oauth2-server - Standalone, specification-compliant, OAuth2 server written in Golang.
- gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers.
- gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang.
- goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box.
- httpauth - HTTP Authentication middleware.
- jeff - Simple, flexible, secure and idiomatic web session management with pluggable backends.
- jwt - Clean and easy to use implementation of JSON Web Tokens (JWT).
- jwt - Lightweight JSON Web Token (JWT) library.
- jwt - Safe, simple and fast JSON Web Tokens for Go.
- jwt-auth - JWT middleware for Golang http servers with many configuration options.
- jwt-go - Golang implementation of JSON Web Tokens (JWT).
- loginsrv - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam.
- oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support.
- osin - Golang OAuth2 server library.
- otpgo - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go.
- paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO).
- permissions2 - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt.
- rbac - Minimalistic RBAC package for Go applications.
- scope - Easily Manage OAuth2 Scopes In Go.
- scs - Session Manager for HTTP servers.
- securecookie - Efficient secure cookie encoding/decoding.
- session - Go session management for web servers (including support for Google App Engine - GAE).
- sessiongate-go - Go session management using the SessionGate Redis module.
- sessions - Dead simple, highly performant, highly customizable sessions service for go http servers.
- sessionup - Simple, yet effective HTTP session management and identification package.
- sjwt - Simple jwt generator and parser.
-
-
Conferences
-
Other Software
- Capital Go - Washington, D.C., USA.
- GoDays - Berlin, Germany.
- GopherChina - Shanghai, China.
- GopherCon Australia - Sydney, Australia.
- GopherCon Europe - Berlin, Germany.
- GopherCon India - Pune, India.
- GopherCon Israel - Tel Aviv, Israel.
- GopherCon Vietnam - Ho Chi Minh City, Vietnam.
- GoWayFest - Minsk, Belarus.
- GolangUK - London, UK.
- dotGo - Paris, France.
-
-
E-Books
-
Other Software
- A Go Developer's Notebook
- For the Love of Go - A series of introductory books for Go beginners.
- GoBooks - A curated list of Go books.
- How To Code in Go eBook - A 600 page introduction to Go aimed at first time developers.
- The Go Programming Language
- An Introduction to Programming in Go
- Go Bootcamp
- Web Application with Go the Anti-Textbook
-
-
Meetups
-
Other Software
- Basel Go Meetup
- Belfast Gophers
- Berlin Golang
- Brisbane Gophers
- Canberra Gophers
- Go Language NYC
- Go London User Group
- Go Remote Meetup
- Go Toronto
- Go User Group Atlanta
- GoBandung
- GoBridge, San Francisco, CA
- GoCracow - Krakow, Poland
- GoJakarta
- Golang Amsterdam
- Golang Argentina
- Golang Baltimore, MD
- Golang Bangalore
- Golang Belo Horizonte - Brazil
- Golang Boston
- Golang Bulgaria
- Golang Cardiff, UK
- Golang Copenhagen
- Golang Curitiba - Brazil
- Golang DC, Arlington, VA
- Golang Dorset, UK
- Golang Estonia
- Golang Gurgaon, India
- Golang Hamburg - Germany
- Golang Israel
- Golang Joinville - Brazil
- Golang Korea
- Golang Lima - Peru
- Golang Lyon
- Golang Marseille
- Golang Melbourne
- Golang New York
- Golang North East
- Golang Paris
- Golang Pune
- Golang Singapore
- Golang Stockholm
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Turkey
- Golang Vancouver, BC
- Golang Vienna, Austria
- Golang Казань
- Golang Москва
- Istanbul Golang
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Women Who Go - San Francisco, CA
- Golang Питер
- GoSF - San Francisco, CA
-
-
Bot Building
-
Contents
- ephemeral-roles - A Discord bot for managing ephemeral roles based upon voice channel member presence.
- go-chat-bot - IRC, Slack & Telegram bot written in Go.
- go-sarah - Framework to build bot for desired chat services including LINE, Slack, Gitter and more.
- go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware.
- go-twitch-irc - Libary to write bots for twitch.tv chat
- Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges.
- govkbot - Simple Go [VK](https://vk.com) bot library.
- hanu - Framework for writing Slack bots.
- Kelp - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies.
- margelet - Framework for building Telegram bots.
- micha - Go Library for Telegram bot api.
- olivia - A chatbot built with an artificial neural network.
- slacker - Easy to use framework to create Slack bots.
- slackscot - Another framework for building Slack bots.
- tbot - Telegram bot server with API similar to net/http.
- telebot - Telegram bot framework written in Go.
- telegram-bot-api - Simple and clean Telegram bot client.
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
-
-
Style Guides
-
Other Software
-
-
Social Media
-
Twitter
-
Reddit
-
-
Websites
-
Reddit
- Awesome Remote Job - Curated list of awesome remote jobs. A lot of them are looking for Go hackers.
- awesome-awesomeness - List of other amazingly awesome lists.
- Go Community on Hashnode - Community of Gophers on Hashnode.
- Go Projects - List of projects on the Go community wiki.
- go.dev - A hub for Go developers.
- Gophercises - Free coding exercises for budding gophers.
- Lille Gophers - Golang talks community in Lille, France ([@LilleGophers](https://twitter.com/LilleGophers)).
- Made with Golang
- r/Golang - News about Go.
- Trending Go repositories on GitHub today - Good place to find new Go libraries.
- TutorialEdge - Golang
- gowalker.org - Go Project API documentation.
- godoc.org - Documentation for open source Go packages.
- Go Report Card - A report card for your Go package.
- Go Challenge - Learn Go by solving problems and getting feedback from Go experts.
- Go In 5 Minutes - 5 minute screencasts focused on getting one thing done.
- Golang Resources - A curation of the best articles, exercises, talks and videos to learn Go.
- Go Forum - Forum to discuss Go.
-
Tutorials
- 50 Shades of Go - Traps, Gotchas, and Common Mistakes for New Golang Devs.
- A Guide to Golang E-Commerce - Building a Golang site for e-commerce (demo included).
- Building Go Web Applications and Microservices Using Gin - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline.
- Caching Slow Database Queries - How to cache slow database queries.
- Canceling MySQL - How to cancel MySQL queries.
- Go By Example - Hands-on introduction to Go using annotated example programs.
- Go database/sql tutorial - Introduction to database/sql.
- Go Playground for iOS - Interactively edit & play Go snippets on your mobile device.
- Go WebAssembly Tutorial - Building a Simple Calculator
- Golangbot - Tutorials to get started with programming in Go.
- GolangCode - Collection of code snippets and tutorials to help tackle every day issues.
- GopherSnippets - Code snippets with tests and testable examples for the Go programming language.
- Hackr.io - Learn Go from the best online golang tutorials submitted & voted by the golang programming community.
- How to Benchmark: dbq vs sqlx vs GORM - Learn how to benchmark in Go. As a case-study, we will benchmark dbq, sqlx and GORM.
- How To Deploy a Go Web Application with Docker - Learn how to use Docker for Go development and how to build production Docker images.
- Programming with Google Go - Coursera Specialization to learn about Go from scratch.
- Building and Testing a REST API in Go with Gorilla Mux and PostgreSQL - We’ll write an API with the help of the powerful Gorilla Mux.
- How to Use Godog for Behavior-driven Development in Go - Get started with Godog — a Behavior-driven development framework for building and testing Go applications.
- Go Cheat Sheet - Go's reference card.
- A Tour of Go - Interactive tour of Go.
-
-
GUI
-
Advanced Console UIs
-
-
UUID
-
HTTP Clients
- uniq - No hassle safe, fast unique identifiers with commands.
-
-
Continuous Integration
-
Advanced Console UIs
- drone - Drone is a Continuous Integration platform built on Docker, written in Go.
-
-
Data Structures
-
Database Drivers
-
Advanced Console UIs
- gomemcache - memcache client library for the Go programming language.
- gorethink - Go language driver for RethinkDB.
- redis - Redis client for Golang.
- cayley - Graph database with support for multiple backends.
-
-
Embeddable Scripting Languages
-
Advanced Console UIs
- expr - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing.
-
-
Generation and Generics
-
Advanced Console UIs
- efaceconv - Code generation tool for high performance conversion from interface{} to immutable type without allocations.
-
-
Images
-
Advanced Console UIs
- go-opencv - Go bindings for OpenCV.
-
-
Performance
-
HTTP Clients
- pixie - No instrumentation tracing for Golang applications via eBPF.
-
-
Query Language
-
HTTP Clients
- graphql - GraphQL server with a focus on ease of use.
-
-
Science and Data Analysis
-
HTTP Clients
- go-dsp - Digital Signal Processing for Go.
-
-
Serialization
-
HTTP Clients
- asn1 - Asn.1 BER and DER encoding library for golang.
- structomap - Library to easily and dynamically generate maps from static structures.
-
-
Benchmarks
-
Other Software
- gocostmodel - Benchmarks of common basic operations for the Go language.
-
Categories
Meetups
57
Websites
38
Authentication and OAuth
33
Bot Building
18
Audio and Music
16
Conferences
11
Software Packages
11
Database
10
Testing
8
E-Books
8
Third-party APIs
8
Command Line
7
Style Guides
7
Code Analysis
7
Distributed Systems
6
Utilities
6
Web Frameworks
6
Text Processing
6
Social Media
6
Server Applications
5
Database Drivers
4
Go Tools
4
Security
3
GUI
3
Sponsorships
3
Networking
3
Data Structures
3
Financial
2
Miscellaneous
2
Editor Plugins
2
ORM
2
Goroutines
2
Serialization
2
Configuration
1
Continuous Integration
1
File Handling
1
Query Language
1
Images
1
Logging
1
IoT (Internet of Things)
1
Generation and Generics
1
UUID
1
Go Generate Tools
1
Science and Data Analysis
1
Performance
1
Resource Embedding
1
Benchmarks
1
Embeddable Scripting Languages
1
Sub Categories
Keywords
golang
61
go
52
bot
7
authentication
6
http
5
jwt
5
kubernetes
5
audio
4
distributed-systems
4
slackbot
4
slack
4
mysql
4
testing
4
middleware
4
golang-library
4
redis
3
auth
3
microservice
3
slack-bot
3
github
3
telegram
3
sessions
3
session-management
3
awesome
3
database
3
awesome-go
3
cli
3
postgresql
3
git
2
cncf
2
docker
2
continuous-delivery
2
monitoring
2
observability
2
graphql
2
oauth2
2
letsencrypt
2
json
2
etcd
2
devops
2
jwk
2
productivity
2
developer-tools
2
command-line
2
bash
2
x509
2
totp
2
unit-testing
2
hotp
2
sql
2