Skip to content

Latest commit

Β 

History

141 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

The Go gopher wearing pixel sunglasses

Awesome Go

Discord

A short, hand-curated list of Go libraries and tools that are actually worth using. Not a directory of everything that exists.

46 projects in 17 categories. Every entry is added by a human through a pull request and checked against the entry rules by CI. An entry earns its place by covering something no listed project does, or by doing it better. Within each category the 5 most-starred projects are shown first and the rest are folded under More. Archived repositories are removed automatically. Stars were last refreshed on 2026-09-17.

Search, filter and sort the full list at floatdrop.github.io/awesome-go.

Contents

Web Frameworks & Routers

HTTP servers, routers and full-stack web frameworks.

  • πŸ₯‡ gin - HTTP web framework with a martini-like API and strong routing performance. β˜…Β 89k
  • πŸ₯ˆ chi - Lightweight, idiomatic and composable router built on net/http. β˜…Β 23k

Command Line

Argument parsing, terminal UIs and everything else for building CLIs.

  • πŸ₯‡ bubbletea - Framework for terminal user interfaces based on The Elm Architecture. β˜…Β 45k
  • πŸ₯ˆ cobra - Framework for CLI applications with subcommands, flags, shell completions and generated docs. β˜…Β 45k
  • πŸ₯‰ kong - Command-line parser where the whole grammar is a struct and commands are typed Run methods. β˜…Β 3.2k
  •    ff - Extends the standard flag package with env vars, config files and subcommands, without replacing it. β˜…Β 1.4k

GUI & Desktop

Desktop application frameworks and GUI toolkits.

  • πŸ₯‡ wails - Desktop applications with a Go backend and a web frontend, using the native webview. β˜…Β 36k

Configuration

Loading settings from files, environment variables and flags.

  • πŸ₯‡ koanf - Configuration management with pluggable providers and parsers merged in explicit layers. β˜…Β 4.2k
  • πŸ₯ˆ confetti - Configuration loader that chains sources per value or struct, with backends as plain functions. β˜…Β 7

Logging

Structured and leveled logging.

  • πŸ₯‡ log - Minimal, colorful logger with a slog handler and structured key-value output. β˜…Β 3.4k

Testing

Assertions, mocks, fixtures and integration test helpers.

  • πŸ₯‡ testify - Assertions, mocks and suites that work with the standard testing package. β˜…Β 26k
  • πŸ₯ˆ testcontainers-go - Throwaway Docker containers for integration tests, with ready modules for databases and brokers. β˜…Β 5k
  • πŸ₯‰ go-cmp - Equality comparison of arbitrary values for tests, with readable diffs and custom options. β˜…Β 4.7k

Databases & SQL

Drivers, query builders, ORMs, migrations, embedded and distributed stores.

  • πŸ₯‡ etcd - Distributed key-value store with Raft consensus, watches and leases, plus its client. β˜…Β 52k
  • πŸ₯ˆ go-redis - Redis client with cluster, sentinel and ring support, pipelines, pub/sub and OpenTelemetry hooks. β˜…Β 22k
  • πŸ₯‰ sqlc - Compiler that generates type-safe code from SQL queries. β˜…Β 18k
  •    pgx - PostgreSQL driver and toolkit with a native API, connection pool, binary protocol and COPY support. β˜…Β 14k
  •    scan - Map database/sql rows onto structs, slices and primitives using struct tags. β˜…Β 615
More (1)
  • modernc.org/sqlite - SQLite translated from C, so database/sql gets an embedded database without cgo or a C toolchain. β˜…Β 97

Validation

Validating structs and inputs.

  • πŸ₯‡ validator - Struct and field validation using tags, with cross-field rules, custom validators and translations. β˜…Β 20k
  • πŸ₯ˆ ozzo-validation - Validation rules written as code rather than tags, with conditional rules and field-keyed errors. β˜…Β 4.1k
  • πŸ₯‰ jsonschema - Validation against JSON Schema drafts 4 through 2020-12, with detailed errors and custom formats. β˜…Β 1.3k
  •    zog - Schema builder that parses untyped input into structs and validates it in one step, like Zod. β˜…Β 1.2k

Dependency Injection

Wiring applications together.

  • πŸ₯‡ di - Dependency injection container with typed constructors, lifecycle hooks and scopes. β˜…Β 3

Concurrency

Goroutine pools, structured concurrency, synchronization helpers and actor frameworks.

  • πŸ₯‡ conc - Structured concurrency: scoped groups with panic propagation, bounded pools and ordered streams. β˜…Β 10k
  • πŸ₯ˆ ergo - Actor framework with supervision trees and network transparency, modeled on Erlang/OTP. β˜…Β 4.7k
  • πŸ₯‰ pond - Bounded worker pool with generics, result groups, context cancellation and subpools. β˜…Β 2.2k
  •    suture - Supervisor trees that restart failed long-running services with backoff, modeled on Erlang/OTP. β˜…Β 1.4k

Resilience

Retries, backoff, circuit breakers and other patterns for surviving failing dependencies.

  • πŸ₯‡ backoff - Exponential backoff with jitter for retries, honoring context cancellation and permanent errors. β˜…Β 4.1k
  • πŸ₯ˆ gobreaker - Circuit breaker with configurable trip conditions, state change hooks and a generic two-step API. β˜…Β 3.7k

Caching

In-memory caches and eviction policies.

  • πŸ₯‡ bigcache - Efficient in-memory cache for gigabytes of data without GC overhead. β˜…Β 8.2k
  • πŸ₯ˆ otter - Concurrent in-memory cache tuned for high hit ratio and low contention. β˜…Β 2.7k
  • πŸ₯‰ go-sieve - Generic in-memory cache with SIEVE eviction and a lock-free read path. β˜…Β 41

Networking & Protocols

Protocol implementations, transports and low-level network plumbing.

  • πŸ₯‡ webrtc - Pure implementation of the WebRTC stack: ICE, DTLS, SRTP, data channels and media tracks. β˜…Β 17k
  • πŸ₯ˆ moq-go - Media over QUIC transport library and relay tracking the IETF MoQ drafts. β˜…Β 3

Audio & Video

Codecs, containers and media processing.

  • πŸ₯‡ opus - Implementation of the Opus audio codec per RFC 6716, with bitstream internals exported for analysis. β˜…Β 559
  • πŸ₯ˆ hi264 - Decoder for H.264 IDR frames and generator of test bitstreams, with fMP4 fragment extension. β˜…Β 22
  • πŸ₯‰ go-flac - FLAC encoder and decoder with SIMD acceleration, no cgo, and output bit-exact with libFLAC. β˜…Β 1

Messaging & Queues

Message brokers, streaming platforms and task queues.

  • πŸ₯‡ nats.go - Client for the NATS messaging system, including JetStream streams, key-value and object stores. β˜…Β 6.7k

Data Structures

Bitsets, compressed bitmaps and other containers beyond slices and maps.

  • πŸ₯‡ roaring - Compressed bitmaps for sparse or huge integer sets, with fast set operations and serialization. β˜…Β 2.9k
  • πŸ₯ˆ bloom - Probabilistic set membership with Bloom filters sized from a target false positive rate. β˜…Β 2.8k
  • πŸ₯‰ bitset - Bitsets with set algebra, population counts, fast iteration over set bits and serialization. β˜…Β 1.5k

Developer Tools

Linters, build tools, debuggers, code generators and terminal tools for daily development work.

  • πŸ₯‡ fzf - Interactive fuzzy finder for the command line, with shell integration for files and history. β˜…Β 83k
  • πŸ₯ˆ lazygit - Terminal UI for git with staging, rebasing, stashing and worktrees a keystroke away. β˜…Β 82k
  • πŸ₯‰ delve - Debugger with goroutine-aware breakpoints, core dump analysis and remote debugging over DAP. β˜…Β 25k
  •    golangci-lint - Linters runner that aggregates dozens of linters with caching, parallelism and a single config. β˜…Β 19k

Documentation

Official guides and references for learning and using the language.

  • A Tour of Go - Interactive introduction that runs in the browser, from basic syntax to generics and concurrency.
  • Go Recipes - Cookbook of tool recipes for testing, dependencies, code generation, profiling and static analysis.
  • Go Release Interactive Tours - Runnable examples of what changed in each release, from language features to the standard library. Versions: 1.27 Β· 1.26 Β· 1.25 Β· 1.24 Β· 1.23 Β· 1.22

Books

Books worth reading cover to cover.

Contributing

Read the contribution guidelines first. Every listed project gets its own badge to show off.

License

CC0

To the extent possible under law, the maintainers have waived all copyright and related or neighboring rights to this work. The logo is excluded: it is based on the Go gopher by RenΓ©e French, licensed under CC BY 4.0.

About

A *truly* curated list of awesome Go frameworks, libraries and software

Topics

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages