Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-go
A curated list of awesome Go frameworks, libraries and software
https://github.com/avelino/awesome-go
Last synced: about 5 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
- GoSF - San Francisco, CA
-
-
Bot Building
- go-joe - A general-purpose bot library inspired by Hubot but written in Go.
- go-joe - A general-purpose bot library inspired by Hubot but written in Go.
- telegram-bot-api - Simple and clean Telegram bot client.
-
Build Automation
-
Command Line
-
Advanced Console UIs
- gommon/color - Style terminal text.
-
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.
-
-
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
-
Strings
- bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings.
- bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings.
- bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings.
- bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings.
-
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
-
-
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
- consul - Consul is a tool for service discovery, monitoring and configuration.
- 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 Brazil - Florianópolis, Brazil.
- 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.
- 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 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.
- Go Forum - Forum to discuss 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
- Go in 7 days - Learn everything about Go in 7 days (from a Nodejs developer).
-
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.
-
-
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.
-
-
Audio and Music
- 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.
- id3v2 - ID3 decoding and encoding library for Go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- Oto - A low-level library to play sound on multiple platforms.
- PortAudio - Go bindings for the PortAudio audio I/O 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.
- 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+.
- casbin - Authorization library that supports access control models like ACL, RBAC, and ABAC.
- 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.
-
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.
- 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.
-
-
Continuous Integration
-
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
-
Benchmarks
-
Other Software
- gocostmodel - Benchmarks of common basic operations for the Go language.
-
-
Artificial Intelligence
- langchaingo - LangChainGo is a framework for developing applications powered by language models.
- LocalAI - Open Source OpenAI alternative, self-host AI models.
- Ollama - Run large language models locally.
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas
- fun - The simplest but powerful way to use large language models (LLMs) in Go.
-
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
132
Meetups
66
E-Books
37
Software Packages
26
Database
19
Conferences
18
Testing
14
Authentication and OAuth
13
Audio and Music
11
Networking
10
Third-party APIs
10
Style Guides
9
Text Processing
9
Miscellaneous
9
Server Applications
8
Web Frameworks
8
GUI
7
Social Media
7
Security
7
Database Drivers
6
Distributed Systems
6
Utilities
6
Code Analysis
5
Package Management
5
Artificial Intelligence
5
Data Structures and Algorithms
5
Command Line
4
Configuration
4
Actor Model
4
Messaging
4
Go Tools
4
Goroutines
4
Build Automation
4
UUID
3
JSON
3
Email
3
Serialization
3
Go Generate Tools
3
Bot Building
3
Query Language
2
Machine Learning
2
Continuous Integration
2
Logging
2
IoT (Internet of Things)
2
Editor Plugins
2
Performance
2
Job Scheduler
2
ORM
2
Generators
1
Template Engines
1
File Handling
1
Financial
1
Natural Language Processing
1
Video
1
Error Handling
1
Hardware
1
Benchmarks
1
Embeddable Scripting Languages
1
Microsoft Office
1
Sub Categories
Free e-books
91
Reddit
89
HTTP Clients
44
Tutorials
42
Search and Analytic Databases
41
Other Software
36
Utility/Miscellaneous
27
E-books for purchase
21
Routers
14
Transliteration
9
Standard CLI
9
DevOps Tools
9
Databases Implemented in Go
7
Database Tools
7
Twitter
6
NoSQL Database Drivers
5
Strings
4
Parsers/Encoders/Decoders
4
Markup Languages
3
Uncategorized
3
SQL Query Builders
3
Miscellaneous Data Structures and Algorithms
2
Dependency Injection
2
Bloom and Cuckoo Filters
2
Guided Learning
2
Database Schema Migration
2
Interfaces to Multiple Backends
1
Formatters
1
Scrapers
1
Trees
1
Advanced Console UIs
1
Testing Frameworks
1
Middlewares
1
Microsoft Excel
1
Morphological Analyzers
1
Keywords
golang
18
go
14
audio
4
actor-model
4
distributed-systems
4
authentication
3
actors
3
distributed
3
llm
3
awesome-list
2
list
2
ai
2
gemma
2
framework
2
llama
2
llama3
2
mistral
2
golang-library
2
rbac
2
auth
2
tokens
2
awesome
2
tts
1
gemma2
1
llama2
1
ios
1
llava
1
llms
1
ollama
1
phi3
1
encryption
1
audio-library
1
audio-processing
1
libsamplerate
1
cryptography-library
1
id3
1
id3v2
1
music
1
alsa
1
directsound
1
opensl-es
1
opensles
1
oss
1
wasapi
1
decoder
1
mp3
1
cryptography
1
sound
1
branca
1
jwt
1