awesome-go
A curated list of awesome Go frameworks, libraries and software
https://github.com/avelino/awesome-go
Last synced: about 20 hours ago
JSON representation
-
JSON
-
Search and Analytic Databases
- mapslice-json - Go MapSlice for ordered marshal/ unmarshal of maps in JSON.
- ujson - Fast and minimal JSON parser and transformer that works on unstructured JSON.
- JSON-to-Proto - Convert JSON to Protobuf online.
-
-
Meetups
-
Free e-books
- Golang Argentina
- Golang Athens
- 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 Kathmandu
- Golang Korea
- Golang Lima - Peru
- Golang Lyon
- Golang Marseille
- Golang Melbourne
- Golang Mountain View
- Golang North East
- Golang Amsterdam
- Basel Go Meetup
- Belfast Gophers
- Belgrade Golang Meetup
- Berlin Golang
- Brisbane Gophers
- Bärner Go Meetup - Berne, Switzerland
- 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 Paris
- Golang Poland
- Golang Pune
- Golang Rotterdam
- Golang Singapore
- Golang Stockholm
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Thessaloniki
- Golang Turkey
- Golang Vancouver, BC
- Golang Vienna, Austria
- Golang Москва
- GoSF - San Francisco, CA
- Istanbul Golang
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Women Who Go - San Francisco, CA
- Zürich Gophers - Zurich, Switzerland
- Golang Mountain View
- GoSF - San Francisco, CA
- Lagos Gophers
-
-
Bot Building
- go-joe - A general-purpose bot library inspired by Hubot but written in Go.
- telegram-bot-api - Simple and clean Telegram bot client.
- go-joe - A general-purpose bot library inspired by Hubot but written in Go.
- telegram-bot-api - Simple and clean Telegram bot client.
- bot - Zero-dependencies Telegram Bot library with additional UI components
- echotron - An elegant and concurrent library for Telegram Bots in Go.
- 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 a bot for desired chat services including LINE, Slack, Gitter, and more.
- go-tg - Generated from official docs Go client library for accessing Telegram Bot API, with batteries for building complex bots included.
- go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router, and middleware.
- go-twitch-irc - Library 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.
- larry - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go.
- margelet - Framework for building Telegram bots.
- micha - Go Library for Telegram bot api.
- olivia - A chatbot built with an artificial neural network.
- slack-bot - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github...
- 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 is written in Go.
- telego - Telegram Bot API library for Golang with full one-to-one API implementation.
- teleterm - Telegram Bot Exec Terminal Command.
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
- wayback - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages.
- arikawa - A library and framework for the Discord API.
- telegram-bot-api - Simple and clean Telegram bot client.
-
Build Automation
- gilbert - Build system and task runner for Go projects.
- gilbert - Build system and task runner for Go projects.
- realize - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths.
- realize - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths.
- 1build - Command line tool to frictionlessly manage project-specific commands.
- anko - Simple application watcher for multiple programming languages.
- gaper - Builds and restarts a Go project when it crashes or some watched file changes.
- gob - [Gradle](https://docs.gradle.org/)/[Maven](https://maven.apache.org/) like build tool for Go projects.
- goyek - Create build pipelines in Go.
- mage - Mage is a make/rake-like build tool using Go.
- mmake - Modern Make.
- Task - simple "Make" alternative.
- taskctl - Concurrent task runner.
- xc - Task runner with README.md defined tasks, executable markdown.
- gaper - Builds and restarts a Go project when it crashes or some watched file changes.
- gilbert - Build system and task runner for Go projects.
-
Command Line
-
Advanced Console UIs
- gommon/color - Style terminal text.
- asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
- aurora - ANSI terminal colors that support fmt.Printf/Sprintf.
- box-cli-maker - Make Highly Customized Boxes for your CLI.
- bubble-table - An interactive table component for bubbletea.
- bubbles - TUI components for bubbletea.
- bubbletea - Go framework to build terminal apps, based on The Elm Architecture.
- cfmt - Contextual fmt inspired by bootstrap color classes.
- cfmt - Simple and convenient formatted stylized output fully compatible with fmt library.
- chalk - Intuitive package for prettifying terminal/console output.
- colourize - Go library for ANSI colour text in terminals.
- crab-config-files-templating - Dynamic configuration file templating tool for kubernetes manifest or general configuration files.
- ctc - The non-invasive cross-platform terminal color library does not need to modify the Print method.
- go-ataman - Go library for rendering ANSI colored text templates in terminals.
- go-colorable - Colorable writer for windows.
- go-colortext - Go library for color output in terminals.
- go-isatty - isatty for golang.
- go-palette - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts.
- go-prompt - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit).
- gocui - Minimalist Go library aimed at creating Console User Interfaces.
- gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows.
- lipgloss - Declaratively define styles for color, format and layout in the terminal.
- marker - Easiest way to match and mark strings for colorful terminal outputs.
- mpb - Multi progress bar for terminal applications.
- progressbar - Basic thread-safe progress bar that works in every OS.
- pterm - A library to beautify console output on every platform with many combinable components.
- simpletable - Simple tables in a terminal with Go.
- spinner - Go package to easily provide a terminal spinner with options.
- tabby - A tiny library for super simple Golang tables.
- table - Small library for terminal color based tables.
- tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API.
- termbox-go - Termbox is a library for creating cross-platform text-based interfaces.
- termdash - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui).
- termenv - Advanced ANSI style & color support for your terminal applications.
- termui - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib).
- uilive - Library for updating terminal output in real time.
- uiprogress - Flexible library to render progress bars in terminal applications.
- uitable - Library to improve readability in terminal apps using tabular data.
- yacspin - Yet Another CLi Spinner package, for working with terminal spinners.
- fx - Terminal JSON viewer & processor.
-
Standard CLI
- hiboot cli - cli application framework with auto configuration and dependency injection.
- go-andotp - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as a library as well.
- survey - Build interactive and accessible prompts with full support for windows and posix terminals.
- acmd - Simple, useful, and opinionated CLI package in Go.
- 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.
- climax - Alternative CLI with "human face", in spirit of Go command.
- clîr - A Simple and Clear CLI library. Dependency free.
- cmd - Extends the standard `flag` package to support sub commands and more in idiomatic way.
- cmdr - A POSIX/GNU style, getopt-like command-line UI Go library.
- cobra - Commander for modern Go CLI interactions.
- command-chain - A go library for configure and run command chains - such as pipelining in unix shells.
- commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags.
- complete - Write bash completions in Go + Go command bash completion.
- Dnote - A simple command line notebook with multi-device sync.
- elvish - An expressive programming language and a versatile interactive shell.
- env - Tag-based environment configuration for structs.
- flag - Simple but powerful command line option parsing library for Go supporting subcommand.
- flaggy - A robust and idiomatic flags package with excellent subcommand support.
- flagvar - A collection of flag argument types for Go's standard `flag` package.
- go-arg - Struct-based argument parsing in Go.
- go-commander - Go library to simplify CLI workflow.
- go-flags - go command line option parser.
- go-getoptions - Go option parser inspired by the flexibility of Perl’s GetOpt::Long.
- gocmd - Go library for building command line applications.
- job - JOB, make your short-term command as a long-term job.
- kingpin - Command line and flag parser supporting sub commands (superseded by `kong`; see below).
- liner - Go readline-like library for command-line interfaces.
- mcli - A minimal but very powerful cli library for Go.
- mitchellh/cli - Go library for implementing command-line interfaces.
- mkideal/cli - Feature-rich and easy to use command-line package based on golang struct tags.
- mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation.
- ops - Unikernel Builder/Orchestrator.
- pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
- sand - Simple API for creating interpreters and so much more.
- strumt - Library to create prompt chain.
- subcmd - Another approach to parsing and running subcommands. Works alongside the standard `flag` package.
- teris-io/cli - Simple and complete API for building command line interfaces in Go.
- ts - Timestamp convert & compare tool.
- ukautz/clif - Small command line interface framework.
- urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli).
- version - Collects and displays CLI version information in multiple formats along with upgrade notice.
- wlog - Simple logging interface that supports cross-platform color and concurrency.
- wmenu - Easy to use menu structure for cli applications that prompt users to make choices.
- hashicorp/cli - Go library for implementing command-line interfaces.
- getopt - An accurate Go `getopt`, validated against the GNU libc implementation.
- readline - Shell library with modern and easy to use UI features.
- goopt - A declarative, struct-tag based CLI framework for Go, with a broad feature set such as hierarchical commands/flags, i18n, shell completion, and validation.
- console - loop application library for Cobra commands, with oh-my-posh prompts, and more.
- sflags - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries.
- go-readline-ny - A customizable line-editing library with Emacs keybindings, Unicode support, completion, and syntax highlighting. Used in NYAGOS shell.
-
-
Database
-
Database Schema Migration
-
Database Tools
- hasql - Library for accessing multi-host SQL database installations.
- chproxy - HTTP proxy for ClickHouse database.
- go-mysql - Go toolset to handle MySQL protocol and replication.
- 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.
- vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
-
Databases Implemented in Go
- Databunker - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA.
- dtf - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages.
- influxdb - Scalable datastore for metrics, events, and real-time analytics.
- ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB.
- lotusdb - Fast k/v database compatible with lsm and b+tree.
- nutsdb - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.
- rosedb - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset.
-
SQL Query Builders
- Dotsql - Go library that helps you keep sql files in one place and use them with ease.
- sqlc - Generate type-safe code from SQL.
- xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.
-
-
Database Drivers
-
NoSQL Database Drivers
-
Interfaces to Multiple Backends
- cayley - Graph database with support for multiple backends.
-
-
Distributed Systems
-
Search and Analytic Databases
- dynamolock - DynamoDB-backed distributed locking implementation.
- pglock - PostgreSQL-backed distributed locking implementation.
- resgate - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly.
- go-micro - A distributed systems development framework.
- go-zero - A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity.
- NATS - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.
-
-
Email
-
File Handling
-
Search and Analytic Databases
- stl - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading.
-
-
Goroutines
-
Search and Analytic Databases
- oversight - Oversight is a complete implementation of the Erlang supervision trees.
- artifex - Simple in-memory job queue for Golang using worker-based dispatching.
- async-job - AsyncJob is an asynchronous queue job manager with light code, clear and speed.
- gowl - Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status.
-
-
GUI
-
Search and Analytic Databases
- gio - Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly.
- Goey - Cross platform UI toolkit aggregator for Windows / Linux / Mac. GTK, Cocoa, Windows API
- Wails - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer.
- app - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress.
- gio - Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly.
- webview - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux).
- Spot - Reactive, cross-platform desktop GUI toolkit.
-
-
IoT (Internet of Things)
-
Search and Analytic Databases
- periph - Peripherals I/O to interface with low-level board facilities.
- connectordb - Open-Source Platform for Quantified Self & IoT.
-
-
Logging
-
Miscellaneous
-
Uncategorized
- go-openapi - Collection of packages to parse and utilize open-api schemas.
- VarHandler - Generate boilerplate http input and output handling.
- gatus - Automated service health dashboard.
-
Dependency Injection
-
Strings
-
-
Networking
-
Transliteration
- mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
- gosnmp - Native Go library for performing SNMP actions.
- grab - Go package for managing file downloads.
- HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
- mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
- NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF).
- quic-go - An implementation of the QUIC protocol in pure Go.
- stun - Go implementation of RFC 5389 STUN protocol.
- webrtc - A pure Go implementation of the WebRTC API.
-
HTTP Clients
- heimdall - An enhanced http client with retry and hystrix capabilities.
-
-
Package Management
-
HTTP Clients
- go modules - Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules.
- vgo - Versioned Go.
- go modules - Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules.
- goop - Simple dependency manager for Go (golang), inspired by Bundler.
- nut - Vendor Go dependencies.
-
-
Performance
-
Security
-
HTTP Clients
- autocert - Auto provision Let's Encrypt certificates and start a TLS server.
- 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.
- autocert - Auto provision Let's Encrypt certificates and start a TLS server.
- go-password-validator - Password validator based on raw cryptographic entropy values.
- acopw-go - Small cryptographically secure password generator package for Go.
- autocert - Auto provision Let's Encrypt certificates and start a TLS server.
-
-
Server Applications
-
HTTP Clients
- nsq - A realtime distributed messaging platform.
- RoadRunner - High-performance PHP application server, load-balancer and process manager.
- Easegress - A cloud native high availability/performance traffic orchestration system with observability and extensibility.
- 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.
- Trickster - HTTP reverse proxy cache and time series accelerator.
-
-
Testing
-
HTTP Clients
- apitest - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams.
- testmd - Convert markdown snippets into testable go code.
- apitest - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams.
- badio - Extensions to Go's `testing/iotest` package.
- commander - Tool for testing cli applications on windows, linux and osx.
- frisby - REST API testing framework.
- go-snaps - Jest-like snapshot testing in Golang.
- Gont - Go network testing toolkit for testing building complex network topologies using Linux namespaces.
- GoSpec - BDD-style testing framework for the Go programming language.
- restit - Go micro framework to help writing RESTful API integration test.
- testmd - Convert markdown snippets into testable go code.
- chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
- playwright-go - browser automation library to control Chromium, Firefox and WebKit with a single API.
-
Testing Frameworks
- gocheck - More advanced testing framework alternative to gotest.
-
-
Text Processing
-
Formatters
- bytes - Formats and parses numeric byte values (10K, 2M, 3G, etc.).
-
Markup Languages
- github_flavored_markdown - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links.
- github_flavored_markdown - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links.
- go-output-format - Output go structures into multiple formats (YAML/JSON/etc) in your command line app.
-
Parsers/Encoders/Decoders
- did - DID (Decentralized Identifiers) Parser and Stringer in Go.
- encdec - Package provides a generic interface to encoders and decoders.
- parseargs-go - string argument parser that understands quotes and backslashes.
- xj2go - Convert xml or json to go struct.
-
Scrapers
- colly - Fast and Elegant Scraping Framework for Gophers.
-
-
Web Frameworks
-
Utility/Miscellaneous
- aah - Scalable, performant, rapid development Web framework for Go.
- Buffalo - Bringing the productivity of Rails to Go!
- aah - Scalable, performant, rapid development Web framework for Go.
- Banjo - Very simple and fast web framework for Go.
- Buffalo - Bringing the productivity of Rails to Go!
- Fireball - More "natural" feeling web framework.
- Gearbox - A web framework written in Go with a focus on high performance and memory optimization.
-
Middlewares
- go-fault - Fault injection middleware for Go.
-
-
Code Analysis
-
Routers
- goimports - Tool to fix (add, remove) your Go imports automatically.
- goreturns - Adds zero-value return statements to match the func return types.
- 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#.
- goimports - Tool to fix (add, remove) your Go imports automatically.
- goimports - Tool to fix (add, remove) your Go imports automatically.
-
-
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
- TOML-to-Go - Translates TOML into a Go type in the browser instantly.
- TOML-to-Go - Translates TOML into a Go type in the browser instantly.
- sqlgen - Generate gorm, xorm, sqlx, bun, sql code from SQL file or DSN.
-
-
Go Tools
-
Routers
- gotemplate.io - Online tool to preview `text/template` templates live.
- OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.
- go-callvis - Visualize call graph of your Go program using dot format.
- OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.
-
-
Software Packages
-
DevOps Tools
- Docker - Open platform for distributed applications for developers and sysadmins.
- Gogs - A Self Hosted Git Service in the Go Programming Language.
- traefik - Reverse proxy and load balancer with support for multiple backends.
- Wide - Web-based IDE for Teams using Golang.
- aptly - aptly is a Debian repository management tool.
- govvv - “go build” wrapper to easily add version information into Go binaries.
- ko - Command line tool for building and deploying Go applications on Kubernetes
- 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
- Better Go Playground - Go playground with syntax highlight, code completion and other features.
- goblin - Golang binaries in a curl, built by goblins.
- GoLand - Full featured cross-platform Go IDE.
- hugo - Fast and Modern Static Website Engine.
- Juju - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more.
- limetext - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text.
- syncthing - Open, decentralized file synchronization tool and protocol.
- tsuru - Extensible and open source Platform as a Service software.
- Better Go Playground - Go playground with syntax highlight, code completion and other features.
- borg - Terminal based search engine for bash snippets.
- goblin - Golang binaries in a curl, built by goblins.
- GoLand - Full featured cross-platform Go IDE.
- Gor - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time.
- Juju - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more.
- limetext - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text.
- 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.
-
-
Conferences
-
Other Software
- GoCon - Tokyo, Japan.
- GoDays - Berlin, Germany.
- GoLab - Florence, Italy.
- GopherChina - Shanghai, China.
- GopherCon - Denver, USA.
- GopherCon Australia - Sydney, Australia.
- GopherCon Europe - Berlin, Germany.
- GopherCon India - Pune, India.
- GopherCon Israel - Tel Aviv, Israel.
- GopherCon Russia - Moscow, Russia.
- GopherCon Singapore - Mapletree Business City, Singapore.
- GopherCon UK - London, UK.
- GopherCon Vietnam - Ho Chi Minh City, Vietnam.
- GoWest Conference - Lehi, USA.
- GopherCon Brazil - Florianópolis, Brazil.
- GopherCon Russia - Moscow, Russia.
- GopherCon Singapore - Mapletree Business City, Singapore.
-
-
E-Books
-
E-books for purchase
- 100 Go Mistakes: How to Avoid Them
- Black Hat Go - Go programming for hackers and pentesters.
- Build an Orchestrator in Go
- Continuous Delivery in Go - This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product.
- Creative DIY Microcontroller Project With TinyGo and WebAssembly - An introduction into the TinyGo compiler with projects involving Arduino and WebAssembly.
- Effective Go: Elegant, efficient, and testable code - Unlock Go’s unique perspective on program design, and start writing simple, maintainable, and testable Go code.
- For the Love of Go - An introductory book for Go beginners.
- Know Go: Generics - A guide to understanding and using generics in Go.
- Lets-Go - A step-by-step guide to creating fast, secure and maintanable web applications with Go.
- Lets-Go-Further - Advanced patterns for building APIs and web applications in Go.
- The Power of Go: Tests - A guide to testing in Go.
- The Power of Go: Tools - A guide to writing command-line tools in Go.
- Writing A Compiler In Go
- Writing An Interpreter In Go - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls.
- 100 Go Mistakes: How to Avoid Them
- Build an Orchestrator in Go
- Lets-Go - A step-by-step guide to creating fast, secure and maintanable web applications with Go.
- Lets-Go-Further - Advanced patterns for building APIs and web applications in Go.
- Writing A Compiler In Go
- Writing An Interpreter In Go - Book that introduces dozens of techniques for writing idiomatic, expressive, and efficient Go code that avoids common pitfalls.
- Go in Practice, Second Edition - Your practical guide on the ins-and-outs of Go development, covering the standard library and the most important tools from Go’s powerful ecosystem.
-
Free e-books
- A Go Developer's Notebook
- An Introduction to Programming in Go
- Build Web Application with Golang
- Building Web Apps With Go
- Go 101 - A book focusing on Go syntax/semantics and all kinds of details.
- Go with the domain - A book showing how to apply DDD, Clean Architecture, and CQRS by practical refactoring.
- GoBooks - A curated list of Go books.
- How To Code in Go eBook - A 600 page introduction to Go aimed at first time developers.
- Learning Go
- Network Programming With Go
- Practical Go Lessons
- The Go Programming Language
- An Introduction to Programming in Go
- Go 101 - A book focusing on Go syntax/semantics and all kinds of details.
- Learning Go
- Go Faster - This book seeks to shorten your learning curve and help you become a proficient Go programmer, faster.
-
-
Style Guides
-
Free e-books
-
-
Social Media
-
Twitter
-
Reddit
-
-
Websites
-
Reddit
- Awesome Go @LibHunt - Your go-to Go Toolbox.
- 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.
- Coding Mystery - Solve exciting escape-room-inspired programming challenges using Go.
- CodinGame - Learn Go by solving interactive tasks using small games as practical examples.
- Explore Go Libraries & Projects - Discover & find a curated list of popular & new Go libraries, top authors, trending project kits, discussions, tutorials & learning resources on kandi.
- Go Blog - The official Go blog.
- Go Code Club - A group of Gophers read and discuss a different Go project every week.
- Go Community on Hashnode - Community of Gophers on Hashnode.
- Go Forum - Forum to discuss Go.
- Go Projects - List of projects on the Go community wiki.
- Go Proverbs - Go Proverbs by Rob Pike.
- Go Report Card - A report card for your Go package.
- go.dev - A hub for Go developers.
- godoc.org - Documentation for open source Go packages.
- Golang Developer Jobs - Developer Jobs exclusively for Golang related Roles.
- Golang Flow - Post Updates, News, Packages and more.
- Golang News - Links and news about Go programming.
- Golang Weekly - Each monday projects, tutorials and articles about Go.
- golang-nuts - Go mailing list.
- Google Plus Community - The Google+ community for #golang enthusiasts.
- Gopher Community Chat - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)).
- Gophercises - Free coding exercises for budding gophers.
- gowalker.org - Go Project API documentation.
- justforfunc - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc).
- Learn Go Programming - Learn Go concepts with illustrations.
- Made with Golang
- r/Golang - News about Go.
- studygolang - The community of studygolang in China.
- Trending Go repositories on GitHub today - Good place to find new Go libraries.
- TutorialEdge - Golang
- Learn Go Programming - Learn Go concepts with illustrations.
- Awesome Go @LibHunt - Your go-to Go Toolbox.
- Code with Mukesh - Software Engineer and Blogs @ codewithmukesh.com.
- Coding Mystery - Solve exciting escape-room-inspired programming challenges using Go.
- CodinGame - Learn Go by solving interactive tasks using small games as practical examples.
- Explore Go Libraries & Projects - Discover & find a curated list of popular & new Go libraries, top authors, trending project kits, discussions, tutorials & learning resources on kandi.
- Go Blog - The official Go blog.
- Go Forum - Forum to discuss Go.
- Go Report Card - A report card for your Go package.
- godoc.org - Documentation for open source Go packages.
- Golang Developer Jobs - Developer Jobs exclusively for Golang related Roles.
- Golang Flow - Post Updates, News, Packages and more.
- Golang News - Links and news about Go programming.
- Google Plus Community - The Google+ community for #golang enthusiasts.
- Gopher Community Chat - Join Our New Slack Community For Gophers ([Understand how it came](https://blog.gopheracademy.com/gophers-slack-community/)).
- gowalker.org - Go Project API documentation.
- json2go - Advanced JSON to Go struct conversion - online tool.
- justforfunc - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy [@francesc](https://twitter.com/francesc).
- Learn Go Programming - Learn Go concepts with illustrations.
- studygolang - The community of studygolang in China.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- pkg.go.dev - Documentation for open source Go packages.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Code with Mukesh - Software Engineer and Blogs @ codewithmukesh.com.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Learn Go Programming - Learn Go concepts with illustrations.
- Golang Resources - A curation of the best articles, exercises, talks and videos to learn Go.
-
Tutorials
- 50 Shades of Go - Traps, Gotchas, and Common Mistakes for New Golang Devs.
- A Comprehensive Guide to Structured Logging in Go - Delve deep into the world of structured logging in Go with a specific focus on recently accepted slog proposal which aims to bring high performance structured logging with levels to the standard library.
- A Guide to Golang E-Commerce - Building a Golang site for e-commerce (demo included).
- A Tour of Go - Interactive tour of Go.
- 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.
- 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.
- CodeCrafters Golang Track - Achieve mastery in advanced Go by building your own Redis, Docker, Git, and SQLite. Featuring goroutines, systems programming, file I/O, and more.
- Games With Go - A video series teaching programming and game development.
- Go By Example - Hands-on introduction to Go using annotated example programs.
- Go database/sql tutorial - Introduction to database/sql.
- Go Language Tutorial - Learn Go language Tutorial.
- Go Tutorial - Learn Go programming.
- Go WebAssembly Tutorial - Building a Simple Calculator
- Golang Tutorial Guide - A List of Free Courses to Learn the Go Programming Language.
- Golangbot - Tutorials to get started with programming in Go.
- GopherCoding - 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.
- Gosamples - Collection of code snippets that let you solve everyday code problems.
- 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.
- 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.
- Learning Go by examples - Series of articles in order to learn Golang language by concrete applications as example.
- Microservices with Go - Dive deep into building microservices using Go, including gRPC.
- package main - YouTube channel about Programming in Go.
- Programming with Google Go - Coursera Specialization to learn about Go from scratch.
- Saving a Third of Our Memory by Re-ordering Go Struct Fields - How inefficient field ordering in Go structs.
- Scaling Go Applications - Everything about building, deploying and scaling Go applications in production.
- The world’s easiest introduction to WebAssembly with Golang
- W3basic Go Tutorials - W3Basic provides an in-depth tutorial and well-organized content to learn Golang programming.
- Your basic Go - Huge collection of tutorials and how to's.
- A Tour of Go - Interactive tour of Go.
- Go Cheat Sheet - Go's reference card.
- Debugged.it Go patterns - Advanced Go patterns with ready-to-run examples.
- Microservices with Go - Dive deep into building microservices using Go, including gRPC.
- package main - YouTube channel about Programming in Go.
- The world’s easiest introduction to WebAssembly with Golang
- Your basic Go - Huge collection of tutorials and how to's.
- Understanding Go in a visual way - Learn Go visually
-
Guided Learning
- The Go Developer Roadmap - A visual roadmap that new Go developers can follow through to help them learn Go.
- The Go Learning Path - A guided learning path containing a mix of free and premium resources.
-
-
Audio and Music
- Oto - A low-level library to play sound on multiple platforms.
- id3v2 - ID3 decoding and encoding library for Go.
- Oto - A low-level library to play sound on multiple platforms.
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.
- gaad - Native Go AAC bitstream parser.
- GoAudio - Native Go Audio Processing Library.
- gosamplerate - libsamplerate bindings for go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- id3v2 - ID3 decoding and encoding library for Go.
-
Authentication and Authorization
- scope - Easily Manage OAuth2 Scopes In Go.
- jwt - Lightweight JSON Web Token (JWT) library.
- scs - Session Manager for HTTP servers.
- 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 it, and start building your app without having to build an authentication system each time.
- branca - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+.
- cookiestxt - provides a parser of cookies.txt file format.
- 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.
- gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers.
- gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang.
- gosession - This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, or at least it tries to become one.
- goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box.
- jeff - Simple, flexible, secure, and idiomatic web session management with pluggable backends.
- jwt - Safe, simple, and fast JSON Web Tokens for Go.
- jwt-auth - JWT middleware for Golang http servers with many configuration options.
- jwt-go - A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs.
- jwx - Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies
- keto - Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models.
- oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support.
- oidc - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation
- openfga - Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by [CNCF](https://www.cncf.io/).
- 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).
- securecookie - Efficient secure cookie encoding/decoding.
- session - Go session management for web servers (including support for Google App Engine - GAE).
- sessions - Dead simple, highly performant, highly customizable sessions service for go http servers.
- sjwt - Simple jwt generator and parser.
- spicedb - A Zanzibar-inspired database that enables fine-grained authorization.
- x509proxy - Library to handle X509 proxy certificates.
- permissions - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt.
- sessionup - Simple, yet effective HTTP session management and identification package.
- goiabada - An open-source authentication and authorization server supporting OAuth2 and OpenID Connect.
- casbin - Authorization library that supports access control models like ACL, RBAC, and ABAC.
- loginsrv - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam.
-
Machine Learning
-
Messaging
-
Search and Analytic Databases
- Benthos - A message streaming bridge between a range of protocols.
- NATS Go Client - Lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library.
- pubsub - Simple pubsub package for go.
- sarama - Go library for Apache Kafka.
-
-
Microsoft Office
-
Microsoft Excel
- excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
-
-
Natural Language Processing
-
Morphological Analyzers
- porter2 - Really fast Porter 2 stemmer.
-
-
ORM
-
Query Language
-
Serialization
-
HTTP Clients
- asn1 - Asn.1 BER and DER encoding library for golang.
- bel - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC.
- structomap - Library to easily and dynamically generate maps from static structures.
-
-
Third-party APIs
-
Utility/Miscellaneous
- clarifai - Go client library for interfacing with the Clarifai API.
- gcm - Go library for Google Cloud Messaging.
- githubql - Go library for accessing the GitHub GraphQL API v4.
- google - Auto-generated Google APIs for Go.
- 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](https://sourceware.org/libffi/) integration
- paypal - Wrapper for PayPal payment API.
- textbelt - Go client for the textbelt.com txt messaging API.
- translate - Go online translation package.
-
-
Utilities
-
Utility/Miscellaneous
- 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.
- mergo - Helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements.
- usql - usql is a universal command-line interface for SQL databases.
-
-
UUID
-
Video
-
Utility/Miscellaneous
- gortsplib - Pure Go RTSP server and client library.
-
-
Authentication and OAuth
- casbin - Authorization library that supports access control models like ACL, RBAC, and ABAC.
- gosession - This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, or at least it tries to become one.
- loginsrv - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam.
- otpgen - Library to generate TOTP/HOTP codes.
- scope - Easily Manage OAuth2 Scopes In Go.
- permissions2 - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt.
-
Configuration
-
Standard CLI
- env - A lightweight package for loading environment variables into structs.
- goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
- gonfig - Tag-based configuration parser which loads values from different providers into typesafe struct.
- aconfig - Simple, useful and opinionated config loader.
- bcl - BCL is a configuration language similar to HCL.
- cleanenv - Minimalistic configuration reader (from files, ENV, and wherever you want).
- config - Cloud native application configuration. Bind ENV to structs in only two lines.
- config - configure your app using file, environment variables, or flags in two lines of code
- configuration - Library for initializing configuration structs from env variables, files, flags and 'default' tag.
- configure - Provides configuration through multiple sources, including JSON, flags and environment variables.
- configuro - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications.
- confiq - Structured data format to config struct decoder library for Go - supporting multiple data formats
- confita - Load configuration in cascade from multiple backends into a struct.
- conflate - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema.
- env - Parse environment variables to Go structs (with defaults).
- env - An environment utility package with support for unmarshaling into structs
- envconfig - Read your configuration from environment variables.
- envh - Helpers to manage environment variables.
- fig - Tiny library for reading configuration from a file and from environment variables (with validation & defaults).
- genv - Read environment variables easily with dotenv support.
- go-array - A Go package that read or set data from map, slice or json.
- go-aws-ssm - Go package that fetches parameters from AWS System Manager - Parameter Store.
- go-cfg - The library provides a unified way to read configuration data into a structure from various sources, such as env, flags, and configuration files (.json, .yaml, .toml, .env).
- go-conf - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters.
- go-ini - A Go package that marshals and unmarshals INI-files.
- go-ssm-config - Go utility for loading configuration parameters from AWS SSM (Parameter Store).
- go-up - A simple configuration library with recursive placeholders resolution and no magic.
- GoCfg - Config manager with Struct Tags based contracts, custom value providers, parsers, and documentation generation. Customizable yet simple.
- goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
- godotenv - Go port of Ruby's dotenv library (Loads environment variables from `.env`).
- gofigure - Go application configuration made easy.
- GoLobby/Config - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language.
- gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge.
- harvester - Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration.
- hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.
- hocon - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files.
- ingo - Flags persisted in an ini-like config file.
- ini - Go package to read and write INI files.
- ini - INI Parser & Write Library, Unmarshal to Struct, Marshal to Json, Write File, watch file.
- joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.
- kelseyhightower/envconfig - Go library for managing configuration data from environment variables.
- koanf - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line.
- konf - The simplest API for reading/watching config from file, env, flag and clouds (e.g. AWS, Azure, GCP).
- konfig - Composable, observable and performant config handling for Go for the distributed processing era.
- kong - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (successor to `kingpin`).
- mini - Golang package for parsing ini-style configuration files.
- nasermirzaei89/env - Simple useful package for read environment variables.
- nfigure - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML
- onion - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP.
- piper - Viper wrapper with config inheritance and key generation.
- sonic - A blazingly fast JSON serializing & deserializing library.
- store - Lightweight configuration manager for Go.
- swap - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env).
- typenv - Minimalistic, zero dependency, typed environment variables library.
- uConfig - Lightweight, zero-dependency, and extendable configuration management.
- viper - Go configuration with fangs.
- xdg - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories).
- xdg - Cross platform package that follows the [XDG Standard](https://specifications.freedesktop.org/basedir-spec/latest/).
- yamagiconf - The "safe subset" of YAML for Go configs.
- envyaml - Yaml with environment variables reader. it helps to have secrets as environment variable but load them configs as structured Yaml.
- gone/jconf - Modular JSON configuration. Keep your config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.
- hedzr/store - Extensible, high-performance configuration management library, optimized for hierarchical data.
- zerocfg - Zero-effort, concise configuration management that avoids boilerplate and repetitive code, supports multiple sources with priority overrides.
-
-
Continuous Integration
-
Standard CLI
- drone - Drone is a Continuous Integration platform built on Docker, written in Go.
- abstruse - Abstruse is a distributed CI platform.
- CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform.
- dot - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages.
- go-beautiful-html-coverage - A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free.
- go-fuzz-action - Use Go 1.18's built-in fuzz testing in GitHub Actions.
- go-semver-release - Automate the semantic versioning of Git repositories.
- go-test-coverage - Tool and GitHub action which reports issues when test coverage is below set threshold.
- gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace.
- gotestfmt - go test output for humans.
- goveralls - Go integration for Coveralls.io continuous code coverage tracking system.
- muffet - Fast website link checker in Go, see [alternatives](https://github.com/lycheeverse/lychee#features).
- overalls - Multi-Package go project coverprofile for tools like goveralls.
- roveralls - Recursive coverage testing tool.
- woodpecker - Woodpecker is a community fork of the Drone CI system.
- Bencher - A suite of continuous benchmarking tools designed to catch performance regressions in CI.
- drone - Drone is a Continuous Integration platform built on Docker, written in Go.
-
-
Data Structures and Algorithms
-
Bloom and Cuckoo Filters
-
Miscellaneous Data Structures and Algorithms
-
Trees
- hashsplit - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position.
-
-
Embeddable Scripting Languages
-
Search and Analytic Databases
- expr - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing.
-
-
Error Handling
-
Search and Analytic Databases
- Falcon - A Simple Yet Highly Powerful Package For Error Handling.
-
-
Generators
-
Search and Analytic Databases
- go-linq - .NET LINQ-like query methods for Go.
-
-
Hardware
-
Search and Analytic Databases
- goroslib - Robot Operating System (ROS) library for Go.
-
-
Job Scheduler
-
Search and Analytic Databases
- Dagu - No-code workflow executor. it executes DAGs defined in a simple YAML format.
-
-
Benchmarks
-
Other Software
- gocostmodel - Benchmarks of common basic operations for the Go language.
-
-
Blockchain
- cometbft - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm.
- cosmos-sdk - A Framework for Building Public Blockchains in the Cosmos Ecosystem.
- gno - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains.
- go-ethereum - Official Go implementation of the Ethereum protocol.
- gosemble - A Go-based framework for building Polkadot/Substrate-compatible runtimes.
- gossamer - A Go implementation of the Polkadot Host.
- kubo - An IPFS implementation in Go. It provides content-addressable storage which can be used for decentralized storage in DApps. It is based on the IPFS protocol.
- lnd - A complete implementation of a Lightning Network node.
- solana-go - Go library to interface with Solana JSON RPC and WebSocket interfaces.
- tendermint - High-performance middleware for transforming a state machine written in any programming language into a Byzantine Fault Tolerant replicated state machine using the Tendermint consensus and blockchain protocols.
-
CSS Preprocessors
-
Standard CLI
- gcss - Pure Go CSS Preprocessor.
- go-libsass - Go wrapper to the 100% Sass compatible libsass project.
-
-
Artificial Intelligence
- langchaingo - LangChainGo is a framework for developing applications powered by language models.
- LocalAI - Open Source OpenAI alternative, self-host AI models.
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas
- fun - The simplest but powerful way to use large language models (LLMs) in Go.
- chromem-go - Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence.
-
Template Engines
-
HTTP Clients
- gomponents - HTML 5 components in pure Go, that look something like this: `func(name string) g.Node { return Div(Class("headline"), g.Textf("Hi %v!", name)) }`.
-
-
Actor Model
- Ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang.
- Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang.
- Hollywood - Blazingly fast and light-weight Actor engine written in Golang.
- ProtoActor - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin.
-
Financial
-
Search and Analytic Databases
- swift - Offline validity check of IBAN (International Bank Account Number) and retrieval of BIC (for some countries).
-
Categories
Websites
129
Command Line
91
Meetups
65
Configuration
63
E-Books
37
Authentication and Authorization
35
Bot Building
30
Software Packages
26
Database
19
Conferences
17
Continuous Integration
17
Build Automation
16
Testing
14
Audio and Music
11
Networking
10
Third-party APIs
10
Blockchain
10
Text Processing
9
Style Guides
8
Web Frameworks
8
Miscellaneous
8
Social Media
7
Security
7
GUI
7
Server Applications
7
Authentication and OAuth
6
Distributed Systems
6
Database Drivers
6
Utilities
6
Package Management
5
Data Structures and Algorithms
5
Code Analysis
5
Artificial Intelligence
5
Go Tools
4
Actor Model
4
Goroutines
4
Messaging
4
UUID
3
Go Generate Tools
3
Serialization
3
Email
3
JSON
3
Performance
2
ORM
2
Editor Plugins
2
CSS Preprocessors
2
Machine Learning
2
IoT (Internet of Things)
2
Logging
2
Query Language
2
Financial
1
Template Engines
1
Generators
1
File Handling
1
Natural Language Processing
1
Video
1
Error Handling
1
Hardware
1
Microsoft Office
1
Benchmarks
1
Embeddable Scripting Languages
1
Job Scheduler
1
Sub Categories
Standard CLI
133
Free e-books
89
Reddit
87
HTTP Clients
43
Tutorials
41
Search and Analytic Databases
40
Advanced Console UIs
40
Other Software
35
Utility/Miscellaneous
27
E-books for purchase
21
Routers
14
DevOps Tools
9
Transliteration
9
Databases Implemented in Go
7
Database Tools
7
Twitter
6
NoSQL Database Drivers
5
Parsers/Encoders/Decoders
4
Strings
3
Markup Languages
3
Uncategorized
3
SQL Query Builders
3
Dependency Injection
2
Miscellaneous Data Structures and Algorithms
2
Guided Learning
2
Database Schema Migration
2
Bloom and Cuckoo Filters
2
Formatters
1
Testing Frameworks
1
Scrapers
1
Middlewares
1
Morphological Analyzers
1
Trees
1
Microsoft Excel
1
Interfaces to Multiple Backends
1
Keywords
golang
136
go
115
cli
32
configuration
28
config
21
command-line
18
terminal
14
environment-variables
14
golang-library
14
bot
13
yaml
11
json
10
telegram
10
environment
9
toml
9
jwt
9
configuration-management
9
blockchain
8
golang-package
7
framework
7
tui
7
distributed-systems
7
library
7
console
6
awesome-go
6
kubernetes
6
flags
6
devops
5
shell
5
color
5
telegram-bot
5
slack
5
authentication
5
security
5
middleware
4
permissions
4
sessions
4
bot-framework
4
slackbot
4
auth
4
dotenv
4
actor-model
4
argument-parser
4
ini
4
task-runner
4
env
4
build-tool
4
slack-bot
4
developer-tools
4
ci
4