A running list of Go modules I use or want to keep on my radar. Some I reach for daily, others I’m still evaluating. The Go ecosystem moves fast, so this post will keep evolving — treat it as a snapshot, not a manifesto.

Resilience & Validation

  • failsafe-go — Fault tolerance and resilience patterns: retries, circuit breakers, timeouts, fallbacks, bulkheads. Composable policies you wrap around any operation.
  • go-playground/validator — Struct and field validation with cross-field, cross-struct, map, and slice diving. The de facto standard for request validation.

Debugging & Inspection

  • goforj/godump — Pretty-printer and debug dumper inspired by Laravel’s dump(). Drops into any function for quick struct inspection.
  • arl/statsviz — Real-time visualization of runtime metrics (heap, GC, goroutines, scheduler) in the browser. Great for spotting allocation patterns under load.
  • Go execution traces — The built-in tracer keeps getting better. Worth revisiting if you last looked years ago.

Slices, Maps & Generics Helpers

  • samber/lo — Lodash-style helpers built on generics: Map, Filter, Contains, Find, and many more. The first dependency I add to most projects.
  • elliotchance/pie — Type-safe utility library for slices and maps with a focus on performance.
  • cornelk/hashmap — Lock-free thread-safe hashmap optimized for read-heavy workloads.
  • jinzhu/copier — Copy values between structs, including unrelated types with matching field names.
  • google/go-cmp — Deep comparison of Go values. The right tool for assertions in tests; far better than reflect.DeepEqual error messages.
  • spf13/cast — Safe type conversions when interface{} payloads need coaxing into concrete types.

SQL & Databases

  • volatiletech/sqlboiler — Generates a Go ORM tailored to your existing schema. Database-first, not model-first.
  • noborus/trdsql — CLI tool that runs SQL queries against CSV, JSON, YAML, LTSV, and TBLN files. Surprisingly handy for data wrangling.
  • rubenv/sql-migrate & pressly/goose — Two solid options for SQL schema migrations. Goose supports Go-based migrations too.
  • simukti/sqldb-logger — Wraps any *sql.DB driver with structured query logging — no code changes to existing usage.

Web & API

  • a-h/templ — Type-safe HTML templating with Go syntax. Plays nicely with HTMX-style stacks.
  • angelofallars/htmx-go — Server-side helpers for building HTMX projects.
  • swaggo/swag — Generates Swagger 2.0 docs from Go annotations. Pragmatic if your team lives in Swagger UI.
  • unrolled/render — One-stop response rendering: JSON, XML, binary, HTML templates.
  • imroc/req — Ergonomic HTTP client with sensible defaults for most everyday use cases.
  • dghubble/gologin — Drop-in OAuth1/OAuth2 login handlers for common providers.

Concurrency & Background Work

  • hibiken/asynq — Reliable distributed task queue backed by Redis. Solid choice when you outgrow in-memory pools.
  • sourcegraph/conc — Structured concurrency primitives that make goroutine lifecycles explicit and panic-safe.
  • Jeffail/tunny & alitto/pond — Goroutine worker pools when you want bounded parallelism without rolling your own semaphores.
  • go-co-op/gocron — Fluent in-process cron scheduling for Go functions.

Terminal UIs & CLI

SSH, Git & System

  • melbahja/goph — Ergonomic SSH client wrapping golang.org/x/crypto/ssh.
  • go-git/go-git — Pure-Go Git implementation. No git binary required.
  • spf13/afero — Filesystem abstraction so file I/O can be tested with an in-memory backend.
  • minio/selfupdate — Self-updating binaries from arbitrary release endpoints.

Configuration

  • spf13/viper — The big one: layered config from files, env, flags, remote sources.
  • caarlos0/env — Zero-dependency env-into-struct parser. My default for small services.
  • ilyakaznacheev/cleanenv — Minimalist environment + file config reader.

Notifications

Testing & Fake Data

  • testcontainers-go — Spin up real Postgres/Redis/Kafka containers from go test. The cure for over-mocked integration tests.
  • brianvoe/gofakeit — Realistic fake data generator: names, addresses, credit cards, JSON payloads.
  • Learn Go with Tests — Not a module, but the resource I send to anyone learning idiomatic Go testing.

Images & Media

  • davidbyttow/govips — CGO bindings for libvips. Fast, low-memory image processing (resize, crop, format conversion) for thumbnail pipelines and high-throughput services.

Charts & Local Docs


This list is intentionally opinionated and incomplete. Some of these will end up in production code, others I’ll try once and discard — that’s the point of keeping a toolbox. If something here changes how I build, it’ll show up in a follow-up post with real-world notes.