Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
G

go-zero

> 云原生
Open source

A cloud-native Go microservices framework with cli tool for productivity.

33.2K stars0 likes2 views
WebsiteGitHub

About

A cloud-native Go microservices framework with cli tool for productivity.

go-zero

go-zero is a web and rpc framework with lots of builtin engineering practices. It’s born to ensure the stability of the busy services with resilience design and has been serving sites with tens of millions of users for years.

🤷‍ What is go-zero?

English | 简体中文 | 한국어

go-zero (listed in CNCF Landscape: https://landscape.cncf.io/?selected=go-zero) is a web and rpc framework with lots of builtin engineering practices. It’s born to ensure the stability of the busy services with resilience design and has been serving sites with tens of millions of users for years.

go-zero contains simple API description syntax and code generation tool called goctl. You can generate Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript from .api files with goctl.

Advantages of go-zero:

  • Improves the stability of the services with tens of millions of daily active users
  • Builtin chained timeout control, concurrency control, rate limit, adaptive circuit breaker, adaptive load shedding, even no configuration needed
  • Builtin middlewares also can be integrated into your frameworks
  • Simple API syntax, one command to generate a couple of different languages
  • Auto validate the request parameters from clients
  • Plenty of builtin microservice management and concurrent toolkits

Backgrounds of go-zero

In early 2018, we transitioned from a Java+MongoDB monolithic architecture to microservices, choosing:

  • Golang - High performance, simple syntax, excellent deployment experience, and low resource consumption
  • Self-designed microservice framework - Better problem isolation, easier feature extension, and faster issue resolution

Design considerations on go-zero

go-zero follows these core design principles:

  • Simplicity - Keep it simple, first principle
  • High availability - Stable under high concurrency
  • Resilience - Failure-oriented programming with adaptive protection
  • Developer friendly - Encapsulate complexity, one way to do one thing
  • Easy to extend - Flexible architecture for growth

The implementation and features of go-zero

go-zero integrates engineering best practices:

  • Code generation - Powerful tools to minimize boilerplate
  • Simple API - Clean interfaces, fully compatible with net/http
  • High performance - Optimized for speed and efficiency
  • Resilience - Built-in circuit breaker, rate limiting, load shedding, timeout control
  • Service mesh - Service discovery, load balancing, call tracing
  • Developer tools - Auto parameter validation, cache management, metrics and monitoring

Architecture with go-zero

Installation

Run the following command under your project:

bash
go get -u github.com/zeromicro/go-zero

AI-Native Development

The go-zero team provides workflow guidance and implementation patterns for AI coding assistants such as Claude Code, GitHub Copilot, and Cursor. For assistants with terminal access, the recommended workflow is to run goctl directly to generate framework-compliant code.

AI Tooling Projects

  • ai-context - Workflow guidance: how to approach go-zero development tasks and when to use goctl.
  • zero-skills - Implementation patterns, examples, and goctl command reference, loaded as needed.
  • mcp-zero - Optional adapter that exposes goctl code generation through the Model Context Protocol (MCP).

Quick Setup

Install goctl and ensure it is available in your $PATH:

bash
go install github.com/zeromicro/go-zero/tools/goctl@latest
goctl --version

Follow the ai-context setup guide and zero-skills integration guides to configure your assistant's workflow instructions and pattern library.

How It Works

  1. Consult ai-context for the workflow and zero-skills for relevant patterns.
  2. Define the .api or .proto specification, then run goctl in the terminal to generate code.
  3. Implement business logic, resolve dependencies, build, and test the service.

Example: Create a REST API → write the .api specification → run goctl api go → implement the logic using zero-skills patterns → run go mod tidy, go build ./..., and go test ./....

Optional MCP Integration

For clients that use MCP tools, such as Claude Desktop, configure mcp-zero to invoke goctl through MCP. It uses the same code generation engine; assistants with terminal access can use the direct workflow above without an MCP server.

Quick Start

  1. Full examples:

    Rapid development of microservice systems

    Rapid development of microservice systems - multiple RPCs

  2. Install goctl

    bash
    # for Go
    go install github.com/zeromicro/go-zero/tools/goctl@latest
    
    # For Mac
    brew install goctl
    
    # docker for all platforms
    docker pull kevinwan/goctl
    # run goctl
    docker run --rm -it -v `pwd`:/app kevinwan/goctl --help

    Ensure goctl is executable and in your $PATH.

  3. Create the API file (greet.api):

    go
    type (
      Request {
        Name string `path:"name,options=[you,me]"` // parameters are auto validated
      }
    
      Response {
        Message string `json:"message"`
      }
    )
    
    service greet-api {
      @handler GreetHandler
      get /greet/from/:name(Request) returns (Response)
    }

    Generate .api template:

    bash
    goctl api -o greet.api
  4. Generate Go server code

    bash
    goctl api go -api greet.api -dir greet

    Generated structure:

…

Run the service:

bash
cd greet
go mod tidy
go run greet.go -f etc/greet-api.yaml

Default port: 8888 (configurable in etc/greet-api.yaml)

Test with curl:

bash
curl -i http://localhost:8888/greet/from/you

Response:

http
HTTP/1.1 200 OK
Date: Sun, 30 Aug 2020 15:32:35 GMT
Content-Length: 0
  1. Write business logic

    • Pass dependencies (mysql, redis, etc.) via servicecontext.go
    • Add logic code in the logic package per .api definition
  2. Generate client code for multiple languages

    bash
    goctl api java -api greet.api -dir greet
    goctl api dart -api greet.api -dir greet
    ...

Benchmark

Checkout the test code

Documents

  • Documents
  • Rapid development of microservice systems
  • Rapid development of microservice systems - multiple RPCs
  • Examples

Chat group

Join the chat via https://discord.gg/4JQvC5A4Fe

Cloud Native Landscape

   

go-zero enlisted in the CNCF Cloud Native Landscape.

Give a Star! ⭐

If you like this project or are using it to learn or start your own solution, give it a star to get updates on new releases. Your support matters!

Issues· 247 open

View all issuesOpen on GitHub
  • #5803

    Bug: collection.Cache can retain entries without expiry timers after concurrent Set calls

    Updated Sep 29, 2026
  • #5788

    Bug: filex.SplitLineChunks returns EOF error when the last line is longer than the preferred chunk size

    Updated Sep 27, 2026
  • #5797

    Bug: TimingWheel.MoveTimer can fire one revolution early or late

    Updated Sep 26, 2026
  • #5787

    Bug:filex.LastLine returns a wrong line when the content after the last separator is a multiple of 1024 bytes

    Updated Sep 25, 2026
  • #5036

    Error Overwrite When Calling Multiple Functions in mr.Finish

    stalekind/need-more-infoUpdated Sep 25, 2026
  • #5180

    Dial-up error encountered when trying DNS resolution

    staleUpdated Sep 22, 2026
  • #602

    Wanted: who's using go-zero? / 您在使用 go-zero 吗?

    help wantedUpdated Sep 17, 2026
  • #5134

    Feature Request: Support route rewrite in http gateway mappings

    staleUpdated Sep 16, 2026
  • #5175

    redis.Redis didn't implement redisNode interface

    staleUpdated Sep 16, 2026
  • #4819

    Should the HTTP Gateway be more flexible?

    enhancementstalefeaturearea/gatewayUpdated Sep 12, 2026

> Tags

Goai-nativeai-native-developmentcloud-nativecode-generation

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 30, 2026
Category云原生
PricingOpen source

> Related tools

K
Kubernetes
容器编排事实标准
H
Helm
Kubernetes 包管理器
S
seaweedfs
SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables,