Лёгкий Go-фреймворк для облачных микросервисов с единым транспортом HTTP и gRPC, middleware и генерацией кода на основе Protobuf.
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
Установите goctl с помощью Go
go install github.com/zeromicro/go-zero/tools/goctl@latest - 2
Создайте файл API greet.api (goctl сгенерирует шаблон)
goctl api -o greet.api - 3
Сгенерируйте код Go-сервера из файла API
goctl api go -api greet.api -dir greet - 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 обновляется ежедневно.
Похожие проекты
Независимый от языка RPC-фреймворк с генератором кода для создания совместимых клиентов и серверов на множестве языков программирования.
Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.
Высокопроизводительный HTTP-фреймворк для Go с API в стиле Martini, предназначенный для REST API, веб-приложений и микросервисов.
Мнение-ориентированный Java-фреймворк для создания готовых к эксплуатации приложений и сервисов на Spring с минимальной настройкой.
Облачный API-шлюз на базе Istio и Envoy с функциями AI-шлюза для LLM-провайдеров и размещения MCP-серверов.