Top 50 Awesome List

avelino/awesome-go

Programming Languages  8 days ago  88.7k
A curated list of awesome Go frameworks, libraries and software
View byDAY/WEEK/README
View on Github

Sep 22nd

Logging

  • logstars13 - Simple leveled logging wrapper around standard log package.
  • Sep 18th

    Websites

    Tutorials

  • GopherCoding - Collection of code snippets and tutorials to help tackle every day issues.
  • Sep 17th

    Command Line

    Standard CLI

  • mclistars6 - A minimal but very powerful cli library for Go.
  • Websites

    Tutorials

  • Games With Go - A video series teaching programming and game development.
  • Messaging

  • mobstars6 - mob is a generic-based, simple mediator / event aggregator library. It supports in-process requests / events processing.
  • Ratusstars52 - Ratus is a RESTful asynchronous task queue server.
  • Utilities

  • scanstars38 - Scan sql rows into any type powered by generics.
  • countriesstars62 - All you need when you are working with countries in Go.
  • gratermstars19 - Provides primitives to perform ordered (sequential/concurrent) GRAceful TERMination (aka shutdown) in Go application.
  • Testing

    Scrapers

  • go-recipestars10 - A package for scraping recipes from websites.
  • Data Structures and Algorithms

    Miscellaneous Data Structures and Algorithms

  • quadtreestars15 - Generic, zero-alloc, 100%-test covered quadtree.
  • go-genericsstars7 - Generic slice, map, set, iterator, and goroutine utilities.
  • Goroutines

  • routinestars62 - routine is a ThreadLocal for go library. It encapsulates and provides some easy-to-use, non-competitive, high-performance goroutine context access interfaces, which can help you access coroutine context information more gracefully.
  • go-workerpoolstars6 - Inspired from Java Thread Pool, Go WorkerPool aims to control heavy Go Routines.
  • Code Analysis

  • astystars23 - Converts golang AST to JSON and JSON to AST.
  • Sep 15th

    Database Drivers

    Relational Database Drivers

  • ydb-go-sdkstars63 - native and database/sql driver YDB (Yandex Database)
  • Sep 13th

    E-Books

    E-books for purchase

  • The Power of Go: Tests - A guide to testing in Go.
  • Utilities

  • remote-touchpadstars332 - Control mouse and keyboard from a smartphone.
  • Sep 9th

    Database

    Databases Implemented in Go

  • doltstars13k - Dolt – It's Git for Data.
  • Sep 5th

    Database

    Database Schema Migration

  • bytebasestars4k - Safe database schema change and version control for DevOps teams.
  • Aug 24th

    ORM

  • bunstars1.5k - SQL-first Golang ORM. Successor of go-pg.
  • Aug 20th

    Database Drivers

    Relational Database Drivers

  • KSQLstars156 - A Simple and Powerful Golang SQL Library
  • Aug 19th

    Financial

  • bbgostars704 - A crypto trading bot framework written in Go. Including common crypto exchange API, standard indicators, back-testing and many built-in strategies.
  • Aug 16th

    Go Tools

    DevOps Tools

  • Fleet device managementstars933 - Lightweight, programmable telemetry for servers and workstations.
  • Aug 7th

    Generators

  • copygenstars184 - Generate type-to-type and type-based code without reflection.
  • Aug 5th

    Utilities

  • gitbatchstars1.5k - manage your git repositories in one place.
  • Aug 4th

    Code Analysis

  • usestdlibvarsstars29 - A linter that detect the possibility to use variables/constants from the Go standard library.
  • Continuous Integration

  • go-fuzz-actionstars6 - Use Go 1.18's built-in fuzz testing in GitHub Actions.
  • Database

    Caches

  • cachegostars186 - Golang Cache component for multiple drivers.
  • Web Frameworks

    Actual middlewares

  • echo-middlewarestars12 - Middleware for Echo framework with logging and metrics.
  • Aug 3rd

    Go Tools

    Other Software

  • sakestars469 - sake is a command runner for local and remote hosts.
  • Jul 29th

    JSON

  • marshmallowstars208 - Performant JSON unmarshaling for flexible use cases.
  • Jul 21st

    Authentication and OAuth

  • ketostars3.6k - 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.
  • Jul 17th

    Error Handling

  • errorsstars1.4k - Go error library with error portability over the network.
  • Jul 11th

    Command Line

    Advanced Console UIs

  • crab-config-files-templatingstars5 - Dynamic configuration file templating tool for kubernetes manifest or general configuration files.
  • Jul 10th

    Utilities

  • lancetstars1.7k - A comprehensive, efficient, and reusable util function library of go.
  • countriesstars188 - Full implementation of ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR and IANA ccTLD standards.
  • evaluatorstars35 - Evaluate an expression dynamically based on s-expression. It's simple and easy to extend.
  • jsendstars17 - JSend's implementation written in Go.
  • Networking

  • fullproxystars37 - A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols.
  • Testing

    Regular Expressions

  • rexstars117 - Regular expressions builder.
  • Database

    Caches

  • go-cachestars73 - A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern.
  • gocachestars1.5k - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more.
  • Configuration

  • harvesterstars119 - Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration.
  • kongstars1.1k - 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).
  • Database

    Database Schema Migration

  • libschemastars4 - Define your migrations separately in each library. Migrations for open source libraries. MySQL & PostgreSQL.
  • gorm-seederstars5 - Simple database seeder for Gorm ORM.
  • Error Handling

  • errorsstars45 - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap & Is. With very easy to use and straightforward helper functions.
  • Financial

  • achstars332 - A reader, writer, and validator for Automated Clearing House (ACH) files.
  • Logging

  • go-logstars10 - A logging library with stack traces, object dumping and optional timestamps.
  • Go Tools

    DevOps Tools

  • abbreviatestars186 - abbreviate is a tool turning long strings in to shorter ones with configurable separators, for example to embed branch names in to deployment stack IDs.
  • Websites

  • Golang Developer Jobs - Developer Jobs exclusively for Golang related Roles.
  • Networking

    HTTP Clients

  • go-zoox/fetchstars18 - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API.
  • Third-party APIs

  • goami2stars8 - AMI v2 library for Asterisk PBX.
  • Jul 3rd

    Financial

  • fpmoneystars10 - Fast and simple ISO4217 fixed-point decimal money.
  • Jun 30th

    Forms

  • gbindstars8 - Bind data to any Go value. Can use built-in and custom expression binding capabilities; supports data validation
  • Jun 29th

    Database

    Database Tools

  • hasql - Library for accessing multi-host SQL database installations.
  • Jun 26th

    Logging

  • phuslu/logstars452 - High performance structured logging.
  • Jun 23rd

    Logging

  • slogstars130 Lightweight, configurable, extensible logger for Go.
  • Websites

    Tutorials

  • 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.
  • Third-party APIs

  • goagistars5 - Go library to build Asterisk PBX agi/fastagi applications.
  • Jun 16th

    Email

  • go-email-normalizerstars52 - Golang library for providing a canonical representation of email address.
  • Go Tools

  • gotemplate.io - Online tool to preview text/template templates live.
  • Jun 15th

    Utilities

  • EaseProbestars1.2k - A simple, standalone, and lightWeight tool that can do health/status checking daemon, support HTTP/TCP/SSH/Shell/Client/... probes, and Slack/Discord/Telegram/SMS... notification.
  • Jun 10th

    Conferences

  • GopherCon Europe - Berlin, Germany.
  • E-Books

    Free e-books

  • Network Programming With Go
  • Jun 9th

    Game Development

  • Ebitenginestars7.1k - dead simple 2D game library in Go.
  • Jun 6th

    Messaging

  • Quaminastars275 - Fast pattern-matching for filtering messages and events.
  • Jun 5th

    Utilities

  • lonchastars6 - A high-performance slice Utilities.
  • Go Compilers

  • c2gostars204 - Convert C code to Go code.
  • Jun 3rd

    Testing

    Markup Languages

  • goldmarkstars2.3k - A Markdown parser written in Go. Easy to extend, standard (CommonMark) compliant, well structured.
  • Utilities

  • wifiqrstars214 - Wi-Fi QR Code Generator.
  • Jun 2nd

    GUI

  • 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.
  • Jun 1st

    Testing

    Parsers/Encoders/Decoders

  • tokenizerstars20 — Parse any string, slice or infinite buffer to any tokens.
  • Websites

  • Code with Mukesh - Software Engineer and Blogs @ codewithmukesh.com.
  • Stream Processing

  • goiostars48 - An implementation of IO, Stream, Fiber for Golang, inspired by awesome Scala libraries cats and fs2.
  • May 31st

    Miscellaneous

    Dependency Injection

  • dostars586 - A dependency injection framework based on Generics.
  • Configuration

  • configstars26 - configure you app using file, environment variables, or flags in two lines of code
  • Financial

  • fpdecimalstars14 - Fast and precise serialization and arithmetic for small fixed-point decimals
  • Functional

  • mostars981 - Monads and popular FP abstractions, based on Go 1.18+ Generics (Option, Result, Either...).
  • Miscellaneous

    Translation

  • spreakstars11 - Flexible translation and humanization library for Go, based on the concepts behind gettext.
  • May 30th

    Error Handling

  • exceptionstars18 - A simple utility package for exception handling with try-catch in Golang.
  • May 22nd

    Goroutines

  • async-jobstars3 - AsyncJob is an asynchronous queue job manager with light code, clear and speed.
  • Functional

  • valorstars8 - Generic option and result types that optionally contain a value.
  • Command Line

    Standard CLI

  • carapace-specstars3 - Define simple completions using a spec file.
  • May 21st

    Geographic

  • H3GeoDiststars1 - Distribution of Uber H3geo cells by virtual nodes.
  • [h3-go] - Go bindings for H3, a hierarchical hexagonal geospatial indexing system.
  • H3 GeoJSONstars3 - Conversion utilities between H3 indexes and GeoJSON.
  • Go Tools

    Other Software

  • Gokapistars407 - Lightweight server to share files, which expire after a set amount of downloads or days. Similar to Firefox Send, but without public upload.
  • Data Structures and Algorithms

    Miscellaneous Data Structures and Algorithms

  • go-rampartstars84 - Determine how intervals relate to each other.
  • Bot Building

  • waybackstars323 - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages.
  • May 18th

    Job Scheduler

  • Dagustars323 - No-code workflow executor. it executes DAGs defined in a simple YAML format.
  • May 9th

    Data Structures and Algorithms

    Miscellaneous Data Structures and Algorithms

  • genfuncsstars31 - Go 1.18+ generics package inspired by Kotlin's Sequence and Map.
  • May 8th

    Third-party APIs

  • go-hibpstars5 - Simple Go binding to the "Have I Been Pwned" APIs.
  • May 7th

    Email

  • go-mailstars80 - A simple Go library for sending mails in Go.
  • Apr 28th

    Database

    Database Tools

  • dynagostars4 - Simplify working with AWS DynamoDB.
  • Apr 27th

    Testing

    Parsers/Encoders/Decoders

  • encdecstars8 - Package provides a generic interface to encoders and decoders.
  • go-fasttldstars10 - High performance top level domains (TLD) extraction module.
  • Logging

  • slf4gstars2 - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks.
  • Database

    SQL Query Builders

  • sgstars2 - A SQL Gen for generating standard SQLs(supports: CRUD) written in Go.
  • Microsoft Office

    Microsoft Excel

  • exlstars12 - Excel binding to struct written in Go.(Only supports Go1.18+)
  • Data Structures and Algorithms

    Maps

  • goradd/mapsstars12 - Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc.
  • Apr 26th

    Configuration

  • GoLobby/Configstars293 - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language.
  • nfigurestars3 - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML
  • Data Structures and Algorithms

    Miscellaneous Data Structures and Algorithms

  • slicesstars12 - Pure, generic functions for slices.
  • Miscellaneous

    Dependency Injection

  • GoLobby/Containerstars380 - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language.
  • ORM

  • golobby/ormstars110 - Simple, fast, type-safe, generic orm for developer happiness.
  • Web Frameworks

    Routers

  • GoLobby/Routerstars20 - GoLobby Router is a lightweight yet powerful HTTP router for the Go programming language.
  • Go Tools

    DevOps Tools

  • go-rocket-updatestars72 - A simple way to make self updating Go applications - Supports Github and Gitlab.
  • Functional

  • fp-gostars121 - Collection of Functional Programming helpers powered by Golang 1.18+ generics.
  • Miscellaneous

    Morphological Analyzers

  • govader-backendstars3 - Microservice implementation of GoVaderstars28.
  • Query Language

  • govenstars38 - A drop-in query language for any database schema.
  • Web Frameworks

  • golambstars3 - Golamb makes it easier to write API endpoints for use with AWS Lambda and API Gateway.
  • Third-party APIs

  • fasapay-sdk-gostars1 - Unofficial Fasapay payment gateway XML API Client for Golang.
  • Apr 9th

    Go Tools

    DevOps Tools

  • wait-forstars4 - Wait for something to happen (from the command line) before continuing. Easy orchestration of Docker services and other things.
  • Apr 5th

    Data Structures and Algorithms

    Bit-packing and Compression

  • crunchstars61 - Go package implementing buffers for handling various datatypes easily.
  • go-efstars24 - A Go implementation of the Elias-Fano encoding.
  • roaringstars1.8k - Go package implementing compressed bitsets.
  • Data Structures and Algorithms

    Bloom and Cuckoo Filters

  • cuckoo-filterstars229 - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper is available.
  • cuckoofilterstars932 - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go.
  • ringstars128 - Go implementation of a high performance, thread safe bloom filter.
  • Data Structures and Algorithms

    Data Structure and Algorithm Collections

  • algorithmsstars672 - Algorithms and data structures.CLRS study.
  • go-datastructuresstars6.7k - Collection of useful, performant, and thread-safe data structures.
  • godsstars12.6k - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.
  • gostlstars718 - Data structure and algorithm library for go, designed to provide functions similar to C++ STL.
  • Data Structures and Algorithms

    Iterators

  • goteratorstars11 - Iterator implementation to provide map and reduce functionalities.
  • iterstars165 - Go implementation of C++ STL iterators and algorithms.
  • Data Structures and Algorithms

    Maps

  • dictstars32 - Python-like dictionaries (dict) for Go.
  • Data Structures and Algorithms

    Miscellaneous Data Structures and Algorithms

  • slicesstars8 - Functions that operate on slices; like package strings but adapted to work with slices.
  • Data Structures and Algorithms

    Nullable Types

  • nanstars57 - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers.
  • nullstars28 - Nullable Go types that can be marshalled/unmarshalled to/from JSON.
  • typstars33 - Null Types, Safe primitive type conversion and fetching value from complex structures.
  • Data Structures and Algorithms

    Queues

  • dequestars67 - A highly optimized double-ended queue.
  • dequestars384 - Fast ring-buffer deque (double-ended queue).
  • goconcurrentqueuestars213 - Concurrent FIFO queue.
  • memlogstars62 - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka.
  • Data Structures and Algorithms

    Sets

  • dsustars8 - Disjoint Set data structure implementation in Go.
  • golang-setstars2.7k - Thread-Safe and Non-Thread-Safe high-performance sets for Go.
  • gosetstars50 - A useful Set collection implementation for Go.
  • setstars22 - Simple set data structure implementation in Go using LinkedHashMap.
  • Data Structures and Algorithms

    Text Analysis

  • blevestars8.6k - Modern text indexing library for go.
  • go-adaptive-radix-treestars247 - Go implementation of Adaptive Radix Tree.
  • go-edlibstars361 - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode.
  • triestars608 - Trie implementation in Go.
  • Data Structures and Algorithms

    Trees

  • hashsplitstars12 - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position.
  • merklestars7 - Space-efficient computation of Merkle root hashes and inclusion proofs.
  • Data Structures and Algorithms

    Pipes

  • ordered-concurrentlystars16 - Go module that processes work concurrently and returns output in a channel in the order of input.
  • parapipestars21 - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results.
  • pipelinestars44 - An implementation of pipelines with fan-in and fan-out.
  • Database

    Caches

  • 2qstars12 - 2Q in-memory cache implementation.
  • couchcachestars58 - RESTful caching micro-service backed by Couchbase server.
  • fastcachestars1.6k - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead.
  • GCachestars2.1k - Cache library with support for expirable Cache, LFU, LRU and ARC.
  • gdcachestars10 - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache.
  • go-mcachestars84 - Fast in-memory key:value store/cache library. Pointer caches.
  • groupcachestars11.7k - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
  • remember-gostars117 - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory).
  • timedmapstars48 - Map with expiring key-value pairs.
  • ttlcachestars492 - An in-memory cache with item expiration and generics.
  • ttlcachestars7 - In-memory key value storage with TTL for each record.
  • Database

    Databases Implemented in Go

  • badgerstars11.3k - Fast key-value store in Go.
  • bboltstars5.9k - An embedded key/value database for Go.
  • Bitcask - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL).
  • buntdbstars3.9k - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support.
  • cloverstars273 - A lightweight document-oriented NoSQL database written in pure Golang.
  • pudgestars332 - Fast and simple key/value store written using Go's standard library.
  • Database

    Database Tools

  • clickhouse-bulkstars388 - Collects small inserts and sends big requests to ClickHouse servers.
  • Database Drivers

    Interfaces to Multiple Backends

  • cayleystars14.3k - Graph database with support for multiple backends.
  • dscstars26 - Datastore connectivity for SQL, NoSQL, structured files.
  • gokvstars479 - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more).
  • Database Drivers

    Relational Database Drivers

  • avaticastars102 - Apache Avatica/Phoenix SQL driver for database/sql.
  • bgcstars17 - Datastore Connectivity for BigQuery for go.
  • firebirdsqlstars177 - Firebird RDBMS SQL driver for Go.
  • go-adodbstars130 - Microsoft ActiveX Object DataBase driver for go that uses database/sql.
  • go-mssqldbstars1.6k - Microsoft MSSQL driver for Go.
  • go-oci8stars595 - Oracle driver for go that uses database/sql.
  • go-sql-driver/mysqlstars12.7k - MySQL driver for Go.
  • go-sqlite3stars6k - SQLite3 driver for go that uses database/sql.
  • godrorstars393 - Oracle driver for Go, using the ODPI-C driver.
  • gofreetdsstars107 - Microsoft MSSQL driver. Go wrapper over FreeTDS.
  • Kivikstars243 - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases.
  • pgxstars6k - PostgreSQL driver supporting features beyond those exposed by database/sql.
  • pigstars10 - Simple pgxstars6k wrapper to execute and scanstars688 query results easily.
  • pqstars7.6k - Pure Go Postgres driver for database/sql.
  • Sqinn-Gostars126 - SQLite with pure Go.
  • sqlhooksstars582 - Attach hooks to any database/sql driver.
  • Database Drivers

    NoSQL Database Drivers

  • aerospike-client-gostars397 - Aerospike client in Go language.
  • arangolitestars73 - Lightweight golang driver for ArangoDB.
  • ascstars9 - Datastore Connectivity for Aerospike for go.
  • forestdbstars33 - Go bindings for ForestDB.
  • go-couchbasestars317 - Couchbase client in Go.
  • go-pilosastars56 - Go client library for Pilosa.
  • go-rejsonstars285 - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease.
  • gocbstars339 - Official Couchbase Go SDK.
  • gocosmosstars11 - REST client and standard database/sql driver for Azure Cosmos DB.
  • gocql - Go language driver for Apache Cassandra.
  • godisstars106 - redis client implement by golang, inspired by jedis.
  • godscachestars11 - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached.
  • gomemcachestars1.5k - memcache client library for the Go programming language.
  • gorethinkstars1.6k - Go language driver for RethinkDB.
  • goriakstars28 - Go language driver for Riak KV.
  • mgmstars566 - MongoDB model-based ODM for Go (based on official MongoDB driver).
  • mgostars2k - (unmaintained) MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms.
  • mongo-go-driverstars6.9k - Official MongoDB driver for the Go language.
  • neo4jstars29 - Neo4j Rest API Bindings for Golang.
  • Neo4j-GOstars77 - Neo4j REST Client in golang.
  • neoismstars388 - Neo4j client for Golang.
  • qmgostars973 - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo.
  • redeostars419 - Redis-protocol compatible TCP servers/services.
  • redigostars9.3k - Redigo is a Go client for the Redis database.
  • redisstars15.5k - Redis client for Golang.
  • rueidisstars507 - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching.
  • xredisstars19 - Typesafe, customizable, clean & easy to use Redis client.
  • Database Drivers

    Search and Analytic Databases

  • elasticstars7k - Elasticsearch client for Go.
  • elasticsqlstars963 - Convert sql to elasticsearch dsl in Go.