The high-performance API framework for Go
Modular. Observable. Cloud-native. Production-ready.
Start in seconds
From zero to production-ready API in under a minute.
Built for production
Everything you need to build, deploy, and operate web services at scale.
Blazing Fast
8.4M+ requests per second with 119ns latency. Radix tree router with Bloom filter optimization.
Integrated Observability
OpenTelemetry-native with built-in metrics, tracing, and structured logging. No assembly required.
Automatic OpenAPI
Generate OpenAPI 3.0/3.1 specs from your code. Built-in Swagger UI with zero configuration.
Production Ready
Graceful shutdown, health checks, panic recovery, mTLS, and comprehensive middleware.
Everything you need, nothing you don't
Functional options everywhere. Configure observability, OpenAPI, health checks, and more—all the same way.
a := app.New( // Service identity app.WithServiceName("my-api"), app.WithServiceVersion("v1.2.3"), // Observability: metrics + tracing + logging app.WithObservability( app.WithMetrics(), app.WithTracing(tracing.WithOTLP("localhost:4317")), app.WithLogging(logging.WithJSONHandler()), ), // OpenAPI documentation app.WithOpenAPI(openapi.WithTitle("My API")), // Health & readiness checks app.WithHealthEndpoints( app.WithReadinessCheck("database", dbPingCheck), ), )
Modular packages
Truly modular. Use what you need. Each package works standalone—no framework lock-in.
app
Batteries-included web framework
router
High-performance HTTP router
binding
Request binding (JSON, form, query)
validation
Struct validation with JSON Schema
config
Configuration management with validation
logging
Structured logging with slog
metrics
OpenTelemetry metrics
tracing
Distributed tracing with OTLP
openapi
Automatic OpenAPI 3.0/3.1 generation
errors
Error formatting (RFC 9457)
Wild Rhubarb of the Mountains
Named after the wild rhubarb plant that thrives at 1,500–3,000 meters in harsh mountain terrain of Iran. It withstands extreme conditions, yet provides nourishment for centuries.