A short, hand-curated list of Go libraries and tools that are actually worth using. Not a directory of everything that exists.
51 projects in 19 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 10 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-22.
Search, filter and sort the full list at floatdrop.github.io/awesome-go.
- Audio & Video
- Caching
- Command Line
- Concurrency
- Configuration
- Data Structures
- Databases & SQL
- Dependency Injection
- Developer Tools
- Embedded & Hardware
- GUI & Desktop
- Messaging & Queues
- Networking & Protocols
- Observability
- Resilience
- Testing
- Utilities
- Validation
- Web Frameworks & Routers
- Blog Posts
- Books
- Documentation
- Podcasts
- Videos
Codecs, containers and media processing.
opus - Implementation of the Opus audio codec per RFC 6716, with bitstream internals exported for analysis.
hi264 - Decoder for H.264 IDR frames and generator of test bitstreams, with fMP4 fragment extension.
go-flac - FLAC encoder and decoder with SIMD acceleration, no cgo, and output bit-exact with libFLAC.
In-memory caches and eviction policies.
bigcache - Efficient in-memory cache for gigabytes of data without GC overhead.
otter - Concurrent in-memory cache tuned for high hit ratio and low contention.
go-sieve - Generic in-memory cache with SIEVE eviction and a lock-free read path.
Argument parsing, terminal UIs and everything else for building CLIs.
bubbletea - Framework for terminal user interfaces based on The Elm Architecture.
cobra - Framework for CLI applications with subcommands, flags, shell completions and generated docs.
log - Minimal, colorful logger with a slog handler and structured key-value output.
kong - Command-line parser where the whole grammar is a struct and commands are typed Run methods.
ff - Extends the standard flag package with env vars, config files and subcommands, without replacing it.
Goroutine pools, structured concurrency, synchronization helpers and actor frameworks.
ergo - Actor framework with supervision trees and network transparency, modeled on Erlang/OTP.
pond - Bounded worker pool with generics, result groups, context cancellation and subpools.
Loading settings from files, environment variables and flags.
koanf - Configuration management with pluggable providers and parsers merged in explicit layers.
confetti - Configuration loader that chains sources per value or struct, with backends as plain functions.
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.
bloom - Probabilistic set membership with Bloom filters sized from a target false positive rate.
bitset - Bitsets with set algebra, population counts, fast iteration over set bits and serialization.
Drivers, query builders, ORMs, migrations, embedded and distributed stores.
etcd - Distributed key-value store with Raft consensus, watches and leases, plus its client.
go-redis - Redis client with cluster, sentinel and ring support, pipelines, pub/sub and OpenTelemetry hooks.
sqlc - Compiler that generates type-safe code from SQL queries.
pgx - PostgreSQL driver and toolkit with a native API, connection pool, binary protocol and COPY support.
bun - SQL-first ORM over database/sql with a query builder, relations, hooks and migrations.
scan - Map database/sql rows onto structs, slices and primitives using struct tags.
duckdb-go - Official database/sql driver for DuckDB, the embedded analytical engine, with Appender and Arrow.
modernc.org/sqlite - SQLite translated from C, so database/sql gets an embedded database without cgo or a C toolchain.
Wiring applications together.
di - Dependency injection container with typed constructors, lifecycle hooks and scopes.
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.
lazygit - Terminal UI for git with staging, rebasing, stashing and worktrees a keystroke away.
delve - Debugger with goroutine-aware breakpoints, core dump analysis and remote debugging over DAP.
air - Live reload that watches the tree, rebuilds and restarts the binary with a single config file.
golangci-lint - Linters runner that aggregates dozens of linters with caching, parallelism and a single config.
lfk - Kubernetes TUI with yazi-style Miller columns over the owner hierarchy, plus Helm and trivy.
Compilers, frameworks and drivers for microcontrollers, boards and the devices attached to them.
tinygo - Compiler for microcontrollers, WebAssembly and small binaries, built on LLVM.
Desktop application frameworks and GUI toolkits.
wails - Desktop applications with a Go backend and a web frontend, using the native webview.
Message brokers, streaming platforms and task queues.
nats.go - Client for the NATS messaging system, including JetStream streams, key-value and object stores.
Protocol implementations, transports and low-level network plumbing.
webrtc - Pure implementation of the WebRTC stack: ICE, DTLS, SRTP, data channels and media tracks.
moq-go - Media over QUIC transport library and relay tracking the IETF MoQ drafts.
Metrics, tracing and instrumentation.
opentelemetry-go - Vendor-neutral SDK for traces, metrics and logs with OTLP and Prometheus exporters.
Retries, backoff, circuit breakers and other patterns for surviving failing dependencies.
backoff - Exponential backoff with jitter for retries, honoring context cancellation and permanent errors.
gobreaker - Circuit breaker with configurable trip conditions, state change hooks and a generic two-step API.
Assertions, mocks, fixtures and integration test helpers.
testify - Assertions, mocks and suites that work with the standard testing package.
testcontainers-go - Throwaway Docker containers for integration tests, with ready modules for databases and brokers.
go-cmp - Equality comparison of arbitrary values for tests, with readable diffs and custom options.
General-purpose helpers that end up in every project.
fsm - Finite state machine where the caller owns the state and events carry typed payloads.
Validating structs and inputs.
validator - Struct and field validation using tags, with cross-field rules, custom validators and translations.
ozzo-validation - Validation rules written as code rather than tags, with conditional rules and field-keyed errors.
jsonschema - Validation against JSON Schema drafts 4 through 2020-12, with detailed errors and custom formats.
zog - Schema builder that parses untyped input into structs and validates it in one step, like Zod.
HTTP servers, routers and full-stack web frameworks.
gin - HTTP web framework with a martini-like API and strong routing performance.
chi - Lightweight, idiomatic and composable router built on net/http.
Articles that changed how people write Go at work.
- Go for Industrial Programming - Peter Bourgon on structuring team codebases: configuration, dependencies, logging and testing.
Books worth reading cover to cover.
- 100 Go Mistakes and How to Avoid Them - Teiva Harsanyi's catalogue of common pitfalls, from slices and maps to concurrency and testing.
- Learning Go, 2nd Edition - Jon Bodner's guide to idiomatic modern practice, from generics to concurrency and testing.
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.
- Effective Go - Official guide to clear, idiomatic code: naming, formatting, interfaces, errors and concurrency.
- Go Optimization Guide - Patterns for high-performance services: memory, GC tuning, concurrency, profiling and benchmarks.
- 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
Shows worth a spot in your queue.
- Cup o' Go - Weekly fifteen-minute rundown of news, releases and proposals with Jonathan Hall and Shay Nehmad.
Talks and courses worth watching from start to finish.
- Go Class by Matt KØDVB - Matt Holiday's university-style lecture course, from basic types to concurrency and testing.
Read the contribution guidelines first. Every listed project gets its own badge to show off.
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.
