Repolode
zeromicro

zeromicro/go-zero

Фреймворк на Go для веб-сервисов и RPC-микросервисов со встроенными механизмами отказоустойчивости и генератором кода goctl на основе спецификаций .api.

Звёзды
33,398
Форки
4,333
Открытые issues
255
Последний коммит
позавчера

Что это?

go-zero — фреймворк для веб-сервисов и RPC, написанный на Go и предназначенный для микросервисных систем, которым нужно сохранять стабильность при высокой нагрузке. В него входят распространённые инженерные практики: последовательное управление таймаутами, ограничение конкурентности, ограничение частоты запросов, адаптивный предохранитель и адаптивное ограничение нагрузки. Многие из этих механизмов работают без дополнительной настройки.

В комплекте с фреймворком поставляется goctl — инструмент командной строки. Разработчики описывают API в простом синтаксисе .api или в файлах .proto, а goctl генерирует каркас Go-сервера: обработчики, бизнес-логику, контекст сервиса и типизированные структуры запросов и ответов. Из того же файла .api он также может генерировать клиентский код для Java, Dart, TypeScript, JavaScript, Kotlin, iOS и Android.

В проекте также есть рекомендации по использованию AI-ассистентов в рабочих процессах разработки, включая MCP-адаптер, который предоставляет инструментам с поддержкой Model Context Protocol доступ к генерации кода через goctl. Ядро фреймворка полностью совместимо с net/http.

Ключевые возможности

  • 01Встроенные предохранитель, ограничение частоты запросов, ограничение нагрузки и управление таймаутами
  • 02goctl генерирует код Go-сервисов по спецификациям .api или .proto
  • 03Автоматическая валидация параметров запросов
  • 04Генерация клиентского кода для нескольких языков из одного файла .api
  • 05Полная совместимость с net/http и интеграция с существующими middleware

Сценарии использования

  • Создание REST API с высокой нагрузкой, которым необходима встроенная защита от сбоев
  • Разработка нескольких взаимодействующих RPC-сервисов в микросервисной архитектуре
  • Генерация шаблонного кода и клиентских SDK для Go, мобильных и веб-фронтендов по единой спецификации API

Быстрый старт

  1. 1

    Установите goctl с помощью Go

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

    Создайте файл API greet.api (goctl сгенерирует шаблон)

    goctl api -o greet.api
  3. 3

    Сгенерируйте код Go-сервера из файла API

    goctl api go -api greet.api -dir greet
  4. 4

    Запустите сгенерированный сервис

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

В подборках

Темы

Частые вопросы

Что такое go-zero?
Фреймворк на Go для веб-сервисов и RPC-микросервисов со встроенными механизмами отказоустойчивости и генератором кода goctl на основе спецификаций .api. go-zero — фреймворк для веб-сервисов и RPC, написанный на Go и предназначенный для микросервисных систем, которым нужно сохранять стабильность при высокой нагрузке. В него входят распространённые инженерные практики: последовательное управление таймаутами, ограничение конкурентности, ограничение частоты запросов, адаптивный предохранитель и адаптивное ограничение нагрузки. Многие из этих механизмов работают без дополнительной настройки.
go-zero можно использовать бесплатно? Какая у него лицензия?
go-zero распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
go-zero всё ещё поддерживается?
Активно поддерживается. Последний коммит в go-zero — 21 окт. 2026 г..
Для чего можно использовать go-zero?
Создание REST API с высокой нагрузкой, которым необходима встроенная защита от сбоев Разработка нескольких взаимодействующих RPC-сервисов в микросервисной архитектуре Генерация шаблонного кода и клиентских SDK для Go, мобильных и веб-фронтендов по единой спецификации API
Как установить go-zero?
Установите goctl с помощью Go: go install github.com/zeromicro/go-zero/tools/goctl@latest Создайте файл API greet.api (goctl сгенерирует шаблон): goctl api -o greet.api Сгенерируйте код Go-сервера из файла API: goctl api go -api greet.api -dir greet Запустите сгенерированный сервис: cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml
Где скачать go-zero?
Исходный код и инструкции по установке — на GitHub: https://github.com/zeromicro/go-zero

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты