Skip to content

The high-performance API framework for Go

Modular. Observable. Cloud-native. Production-ready.

0
req/sec
0
latency
0
per request

Start in seconds

From zero to production-ready API in under a minute.

~/my-api

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.

main.go
package main

import (
    "context"

    "rivaas.dev/app"
    "rivaas.dev/logging"
    "rivaas.dev/openapi"
    "rivaas.dev/tracing"
)

func main() {
    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),
        ),
    )

    a.Start(context.Background(), ":8080")
}
🌿

Wild Rhubarb of the Mountains

Named after a wild rhubarb plant that grows high in Iran's mountains, at 1,500–3,000 meters. It survives where little else can — yet has fed people for centuries.

🛡️
Resilient
Production-ready
Lightweight
16 bytes/request
🔧
Adaptive
Local to cloud
📦
Self-sufficient
Integrated observability

Ready to build?

$ go get rivaas.dev/app