Frameworks#

Go’s standard library is unusually capable, so frameworks tend to be thin. The community generally prefers small, composable packages over monolithic frameworks.

HTTP / Web#

The standard net/http is good enough for production. Common upgrades add routing, middleware, and validation.

  • chi , idiomatic router on net/http.

  • gorilla/mux , mature router; the project re-emerged in 2023.

  • echo , ergonomic, minimal.

  • gin , popular for its API and performance reputation.

  • fiber , Express-like, fasthttp-based.

  • huma , OpenAPI-first APIs.

  • Encore , opinionated framework with built-in infra.

RPC / Service#

  • grpc-go , official gRPC.

  • connect-go , gRPC-compatible plus HTTP/JSON.

  • Twirp , simpler RPC over HTTP/Protobuf.

  • go-kit , toolkit for microservices.

  • Kratos , microservice framework.

ORM / Data Access#

  • database/sql , standard library; the foundation everything builds on.

  • pgx , Postgres driver and toolkit; the de-facto choice.

  • sqlc , generates type-safe Go from SQL queries.

  • sqlx , thin extensions to database/sql.

  • ent , Facebook’s entity framework with codegen.

  • gorm , traditional ORM.

  • bun , modern, query-first.

  • goqu , SQL builder.

CLI#

Configuration#

Background Work / Queues#

Testing#

  • testing , standard library.

  • testify , assertions, mocks.

  • gomock , mock generation.

  • Ginkgo + Gomega, BDD-style.

  • httptest , standard library; HTTP integration tests.

Observability#

WebAssembly / Edge#

Why “Boring” Wins in Go#

The Go culture is suspicious of magic and frameworks. The most-used “framework” in production is net/http + a router + database/sql + a logger. That stack is hard to beat for clarity and longevity.