# unionj-cloud/go-doudou

go-doudou（doudou pronounce /dəudəu/）is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well.

Repository: https://github.com/unionj-cloud/go-doudou
Canonical: https://ross.abutalabs.com/products/go-doudou
Homepage: https://go-doudou.github.io
Language: Go
License: MIT
License Family: permissive
Topics: golang, microservice, apollo, cloud-native, framework, go, nacos, openapi, orm, rest, restful-api, swagger3, grpc, grpc-go, etcd, rate-limiting, service-mesh
Last push: 2026-05-02T09:53:12+00:00

## Health v2 (maintenance only)
Score: 68/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 80, release rhythm 34, longevity 100
- inputs: {"age_days": 2016, "days_push": 123, "days_rel": 362, "gap_med": 35.0, "n_releases_24m": 11}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1172, forks 195 (observed 2026-08-28T04:03:51.759267+00:00)

## What it is
go-doudou is a lightweight Go microservice framework based on OpenAPI 3.0 (for REST) and Protobuf v3 (for gRPC), with a built-in code generator CLI that starts from plain Go interfaces. It supports both monolith and microservice architectures and includes service governance features like load balancing, rate limiting, circuit breaking, and remote configuration.

## Use cases
- build rest microservices in go
- generate openapi 3 spec from go interfaces
- build grpc microservices without writing protobuf by hand
- add rate limiting and circuit breaking to go services
- integrate service discovery with nacos or etcd
- build a monolith rest api in go
- remote configuration management for go microservices

## When to choose
- you want a code-generation-first Go microservice framework without learning a separate IDL
- you need both REST and gRPC support with built-in service governance
- you want flexibility to start with a monolith and split into microservices later
- you use Nacos, Etcd, or Apollo for config and discovery in a Go stack

## When to avoid
- you need the ecosystem maturity of Go-kit, Kratos, or Go-micro
- you only need a simple HTTP router or REST API framework without microservice features
- your team prefers writing OpenAPI or Protobuf definitions directly
- you need non-Go polyglot service definitions

## Facets
- artifact type: framework
- maturity: active
- function: web-framework, api-framework, rpc, middleware, rate-limiting, configuration-management, service-discovery
- domain: microservices, backend, web-development, apis, cloud-computing
- platform: go, windows, cloud
- tags: openapi-3, grpc, protobuf, rest, service-governance, circuit-breaker, load-balancer, nacos, etcd, apollo, code-generator, monolith, cloud-native, code-generation, linux, macos, docker, kubernetes

## Member repositories
- unionj-cloud/go-doudou (main) score 68

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:51.759267+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-30T06:28:28.614853+00:00, confidence not recorded.
  - readme: https://github.com/unionj-cloud/go-doudou (fetched 2026-08-28T04:03:51.759267+00:00, sha af0ca2c2ea58)
  - homepage: https://go-doudou.github.io (fetched 2026-08-29T12:33:51.841455+00:00, sha 7eed614fc497)
- Data as of 2026-08-30T08:39:29.467469+00:00.
