docs/comparison/page.md
{% answer %} GoFr, Gin, Fiber, Echo, and Chi are all open-source projects in the same space, with different scopes. Gin, Fiber, Echo, and Chi are minimal HTTP routers — by design — and let teams compose observability, datasources, gRPC, Pub/Sub, and resilience patterns from the libraries of their choosing. GoFr is a microservice framework with a wider scope: HTTP routing alongside OpenTelemetry tracing, Prometheus metrics, structured logging, datasource clients, migrations, Pub/Sub, gRPC, GraphQL, WebSockets, cron, and a service-to-service HTTP client with circuit breakers — all bundled with defaults you can override. The matrix below shows the differences without taking a position on which is "better". {% /answer %}
| Feature | GoFr | Gin | Fiber | Echo | Chi |
|---|---|---|---|---|---|
| HTTP routing | Yes | Yes | Yes | Yes | Yes |
| Middleware system | Yes | Yes | Yes | Yes | Yes |
| Auto CRUD handlers from struct | Yes | No | No | No | No |
| gRPC server (built-in) | Yes | No | No | No | No |
| GraphQL server (built-in) | Yes | No | No | No | No |
| WebSocket server + client | Yes | Via library | Yes (server) | Via library | Via library |
| OpenTelemetry tracing (built-in) | Yes | Via library | Via library | Via library | Via library |
| Prometheus metrics (built-in) | Yes | Via library | Via library | Via library | Via library |
| Structured logging (built-in) | Yes | Via library | Via library | Via library | Via library |
| Remote log-level change | Yes | No | No | No | No |
| 15+ datasource clients (built-in) | Yes | No | No | No | No |
| Pub/Sub (Kafka, NATS, GCP, MQTT, SQS, Azure) | Yes | No | No | No | No |
| Database migrations | Yes | No | No | No | No |
| Service-to-service HTTP w/ circuit breaker | Yes | No | No | No | No |
| Cron jobs | Yes | No | No | No | No |
| Auth: Basic / API key / JWT (JWKS) | Yes | Via library | Via library | Via library | Via library |
| RBAC (config-driven) | Yes | No | No | No | No |
| Health checks (incl. datasource health) | Yes | Manual | Manual | Manual | Manual |
| Swagger UI built in | Yes | Via library | Via library | Via library | Via library |
| Built on net/http | Yes | Yes | No (fasthttp) | Yes | Yes |
| License | Apache 2.0 | MIT | MIT | MIT | MIT |
Already on one of these? Migration guides with code translations:
{% faq %}
{% faq-item question="Can I migrate from Gin / Fiber / Echo to GoFr?" %} Yes. The mental model is similar (handler → router → middleware), and GoFr's handler signature is straightforward to adopt. See the migration guides. {% /faq-item %}
{% faq-item question="What about Beego, Revel, or other older frameworks?" %} Beego, Revel, and Buffalo are full-stack frameworks that include templating, ORM, and asset pipelines. GoFr is scoped to microservices and APIs, with no template engine or ORM, so the comparison is mostly one of scope rather than competition. {% /faq-item %}
{% /faq %}