Skip to content

Repository files navigation

Awesome Go

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

25 projects in 13 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-12.

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

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
  • 🥈 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
  • 🥈 sqlc - Compiler that generates type-safe code from SQL queries. ★ 18k
  • 🥉 scan - Map database/sql rows onto structs, slices and primitives using struct tags. ★ 615

Dependency Injection

Wiring applications together.

  • 🥇 di - Dependency injection container with typed constructors, lifecycle hooks and scopes. ★ 2

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

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.

  • 🥇 moq-go - Media over QUIC transport library and relay tracking the IETF MoQ drafts. ★ 3

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

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

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.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages