# ogen-go/ogen

OpenAPI v3 code generator for go

Repository: https://github.com/ogen-go/ogen
Canonical: https://ross.abutalabs.com/products/ogen
Homepage: https://ogen.dev
Language: Go
License: Apache-2.0
License Family: permissive
Topics: go, golang, openapi, swagger, api, codegen, openapi3, code-generator, openapi-codegen, openapi-generator, rest, rest-api, restful-api
Last push: 2026-08-24T03:23:20+00:00

## Health v2 (maintenance only)
Score: 98/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 96, longevity 100
- inputs: {"age_days": 1922, "days_push": 9, "days_rel": 26, "gap_med": 13.5, "n_releases_24m": 29}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2131, forks 181 (observed 2026-08-28T04:06:17.182615+00:00)

## What it is
ogen is an OpenAPI v3 code generator for Go that produces statically typed client and server code from an OpenAPI specification. It generates optimized JSON encoding, validation, a static radix router, sum types for oneOf, and optional/nullable wrappers without reflection or interface{} on the hot path.

## Use cases
- generate a type-safe Go server from an OpenAPI v3 spec
- generate a Go REST API client from swagger/openapi yaml
- avoid writing boilerplate request parsing and validation code
- get fast JSON encoding without encoding/ reflection overhead
- generate sum types for oneOf schemas in Go
- add OpenTelemetry tracing and metrics to a generated API server
- generate SSE clients from an OpenAPI spec

## When to choose
- you have an OpenAPI v3 spec and want fully typed Go client and server code
- you want code-generated validation and routing with no reflection
- you need optional/nullable field handling without pointer soup
- you want a stable, actively maintained generator with batteries-included observability

## When to avoid
- your API spec is not OpenAPI v3 (e.g., only Swagger 2.0)
- you need dynamic or runtime-configurable API behavior rather than static codegen
- you prefer hand-written handlers with minimal generated code
- your spec uses features ogen does not support yet

## Facets
- artifact type: cli-tool
- maturity: stable
- function: web-framework, http-server, http-client, serialization, routing, form-handling, cli
- domain: developer-tools, apis, web-development, backend
- platform: go, cli, cross-platform
- tags: openapi, openapi-v3, codegen, rest-api, swagger, type-safe, static-typing, radix-router, opentelemetry, sse, code-generation, docker

## Member repositories
- ogen-go/ogen (main) score 98

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:17.182615+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:52:11.283953+00:00, confidence not recorded.
  - readme: https://github.com/ogen-go/ogen (fetched 2026-08-28T04:06:17.182615+00:00, sha 165e28011c36)
  - homepage: https://ogen.dev (fetched 2026-08-29T10:32:09.840216+00:00, sha 9fe588f26942)
  - site_page: https://ogen.dev/docs/intro (fetched 2026-08-29T10:32:09.843166+00:00, sha 9217664a7ceb)
- Data as of 2026-08-30T08:39:29.467469+00:00.
