Modular. Observable. Cloud-native. Production-ready.
From zero to production-ready API in under a minute.
Everything you need to build, deploy, and operate web services at scale.
8.4M+ requests per second with 119ns latency. Radix tree router with Bloom filter optimization.
OpenTelemetry-native with built-in metrics, tracing, and structured logging. No assembly required.
Generate OpenAPI 3.0/3.1 specs from your code. Built-in Swagger UI with zero configuration.
Graceful shutdown, health checks, panic recovery, mTLS, and comprehensive middleware.
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), ), )
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
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)
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.