mrkeyoor.com_
Wed 09 Sept 21:55 UTC
Dev Toolsevaluationupdated 09 Sept 2026

gofr review

GoFr is an opinionated Go framework for building microservices, with built-in HTTP, gRPC, configuration, logging, tracing, metrics, and pub/sub. It solves the problem of assembling and wiring the same Kubernetes-friendly service boilerplate in every new Go service.

trackingstars / 7d
Verdict

Our clean checkout of gofr-dev/gofr compiled successfully, but its own test suite failed: 95 passed and 12 failed out of 107 total. GoFr is a real option if you want a batteries-included Go microservice framework and are willing to accept some test-level rough edges.

We ran it

Install✓ · 108s594 packages
Build✓ · 112s
Tests✗ · 160s95 passed · 12 failed of 107 (go test)
Repo1072 files~196,435 lines of source · 14.6 MB · 4 CI workflows · Dockerfile

Answers from our run

Does gofr build from source?

Dependencies installed in 108 seconds (594 packages), and the build succeeded in 112 seconds. We cloned commit 2d78c40 into a clean Debian container with 3 CPUs and no project-specific setup.

Do gofr's tests pass?

Not all of them: 95 of 107 passed and 12 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use gofr?

Teams that just need a fast HTTP router with no extra dependencies; GoFr pulls in a large dependency surface

What are the alternatives to gofr?

Gin, chi, Fiber. Our clean checkout of gofr-dev/gofr compiled successfully, but its own test suite failed: 95 passed and 12 failed out of 107 total.

Setup4/5Sample app compiles; tests not fully green
Docs4/5README plus docs site; API docs likely good
Community4/520.9k stars, active push and release cadence
Maturity3/5v1.60 but own tests fail in metrics exporters

Who it’s for

Go developers building new internal microservices who want observability and standard REST behavior without assembling many libraries
Teams deploying to Kubernetes that want health checks, config management, and tracing defaults out of the box
Developers who prefer an all-in-one framework over choosing a router, a config package, a logger, and a Pub/Sub client separately

Who it’s NOT for

Teams that just need a fast HTTP router with no extra dependencies; GoFr pulls in a large dependency surface
Developers on Go versions older than 1.24; the README requires Go 1.24 or above
Anyone who wants a stable upstream where go test ./... is green; our run saw 12 failing tests
Projects that must avoid opinionated frameworks and keep choices per-library

Setup reality

The README implies a near-instant start with go get and a few lines of code. Our install pulled 594 packages and took 108 seconds, then build succeeded in 112 seconds. The bigger caveat is the test suite: go test exited 1 after 160 seconds with 95 passed and 12 failed out of 107 total, failing in the metrics exporters package. So getting a sample app running is likely easy, but the repo itself does not currently have a fully green test run.

What GoFr is

GoFr is an opinionated Go framework for building microservices. It bundles HTTP routing with REST defaults, gRPC, configuration, logging, tracing, metrics, database migration, Pub/Sub, cron jobs, Swagger rendering, websockets, and health checks in one import. The project is listed in the CNCF Landscape and targets Kubernetes deployments. The primary language is English; the README and docs site are in English.

What happened when we ran it

We cloned gofr-dev/gofr at commit 2d78c40 on 2026-09-09 and ran it in a fresh Debian container with Go 1.24, 3 CPUs, and 8 GB RAM. Installation succeeded in 108 seconds and pulled 594 packages. Building a clean binary succeeded in 112 seconds. The test suite did not pass: go test exited with code 1 after 160 seconds, reporting 95 passed and 12 failed out of 107 total tests. The final failing package is gofr.dev/pkg/gofr/metrics/exporters, with two failing tests: TestBuildResource_carriesRequiredLabelSources and TestBuildResource_schemaURLConflictIsNotAFailure. The log shows the package reached those tests and failed, not a timeout or missing dependency. So a sample app is likely easy to start, but the repository's own test suite is red on a standard Go image.

Version, release cadence, and rough edges

The latest release is v1.60.1, tagged on 2026-09-02, seven days before our run. The last push is on 2026-09-09, the same day. That signals active maintenance at first glance. However, a framework whose headline is out-of-the-box observability has failing tests in its metrics exporter package, which is a rough edge. Our install fetched 594 packages, a substantial dependency surface for a small service. The README requires Go 1.24 or above, so teams pinned to older toolchains cannot use this release. In our run, the build succeeded, so the public API compiles; the failures are limited to tests, but they are still the project's own tests, not third-party flakes.

Strengths from the README

The main strength is consolidation. The example app is just gofr.New(), a GET handler, and Run(). The README lists 15 built-in features that would otherwise require separate libraries: auth middleware and custom middleware, HTTP with circuit breaker support, Pub/Sub, cron, health checks for all datasources, database migrations, remote log level changes without restart, Swagger, abstracted filesystems, and websockets. For a new service that needs HTTP plus gRPC plus scheduled jobs, GoFr can replace a few days of library evaluation with one import. Apache-2.0 licensing and the gofr.dev docs site lower the barrier further. The project has 20,939 stars and a Discord for help.

Where GoFr is not the best fit

If you only need a fast HTTP router with middleware, GoFr carries more machinery than necessary. In our run, installing the module required 594 packages and 108 seconds; a lightweight router would be far quicker. The failing test suite makes it less attractive for contributors who want a green go test ./... before coding. The opaque failure in metrics/exporters may be a genuine bug or an environment assumption not documented in the README; either way, it is friction. For teams that already have chosen Echo, Prometheus, and NATS, GoFr's opinionated defaults may conflict with existing choices.

Community and maintenance

Repository activity looks live: last push 2026-09-09, latest release v1.60.1 on 2026-09-02, and 134 open issues. The project was created on 2023-10-24 and has reached version 1.60 in under three years, which is a fast feature cadence. Four CI workflow files and a Dockerfile are present. There is no separate tests directory, but that is normal in Go; tests live next to packages. The failing tests on our run raise the question of whether CI is configured to catch the same failures; the data does not show CI status, so we can only report our local result.

It fits behind an existing gateway, not in front of one

GoFr works as the backend service layer behind an API gateway or ingress controller in Kubernetes. Use it for new internal microservices where you want HTTP and gRPC, cron, health checks, and telemetry wired by default. It is not a replacement for Envoy, NGINX, a service mesh, or a frontend framework. For a small public API that only needs routing and middleware, Gin or chi is simpler and lighter. For teams that want a full microservice toolkit with less code, GoFr is a legitimate option, provided you can tolerate the test suite being red and the dependency weight.

Alternatives

ProjectWhat it isPick it when
GinA fast, widely used HTTP web framework with middleware, but no built-in gRPC, pub/sub, or observability stack.pick Gin when you only need an HTTP API layer and want a smaller, battle-tested core
chiA lightweight, idiomatic router for Go net/http with middleware, no framework lock-in.pick chi when you want standard-library compatibility and choose observability, config, and Pub/Sub yourself
FiberAn Express-inspired Go web framework with high performance and many middlewares.pick Fiber when you want an Express-like API style and do not need Kubernetes-native microservice features
Echo gh↗A high-performance, minimalist Go web framework with middleware and HTTP/2 support.pick Echo when you need a fast HTTP framework with a smaller footprint than GoFr

What people are saying

  1. [velocity-scout] gofr-dev/gofr

Sources

  1. GoFr GitHub repository
  2. GoFr documentation

More dev tools reviews

CleanArchitecture · resty · magika · PI-Desktop · chezmoi · iced · the whole board →