Фреймворк на Go для веб-сервисов и RPC-микросервисов со встроенными механизмами отказоустойчивости и генератором кода goctl на основе спецификаций .api.
go-kratos/kratos
Лёгкий Go-фреймворк для облачных микросервисов с единым транспортом HTTP и gRPC, middleware и генерацией кода на основе Protobuf.
- Звёзды
- 25,984
- Форки
- 4,182
- Открытые issues
- 121
- Последний коммит
- позавчера
Что это?
Kratos — Go-фреймворк для создания облачных микросервисов. Он предлагает компактные и понятные API для транспорта, middleware, реестра сервисов, конфигурации, логирования, кодирования и генерации кода, чтобы разработчики могли больше времени уделять бизнес-логике.
Фреймворк строится по принципу API-first: сервисы описываются в Protobuf, а Kratos CLI генерирует по этим описаниям код серверов и клиентов HTTP и gRPC. HTTP и gRPC используют общий транспортный слой, а middleware поддерживают обработку ошибок, логирование, валидацию, трассировку, метрики и аутентификацию. Компоненты реестра, конфигурации и кодирования можно подключать и заменять.
В проект входит CLI для создания каркаса новых сервисов, а экосистема contrib предлагает дополнительные интеграции, например с реестрами, хранилищами конфигурации и средствами наблюдаемости на базе OpenTelemetry. Для логирования используется пакет log/slog из стандартной библиотеки.
Ключевые возможности
- 01Подход Protobuf-first: генерация кода для HTTP и gRPC.
- 02Единый транспортный слой для HTTP и gRPC.
- 03Комбинируемые middleware для обработки ошибок, логирования, валидации, трассировки, метрик и аутентификации.
- 04Подключаемые компоненты реестра, конфигурации и кодирования.
- 05Логирование на базе стандартного пакета log/slog с расширениями OpenTelemetry в пакетах contrib.
Сценарии использования
- Создание набора Go-микросервисов, взаимодействующих по gRPC и HTTP.
- Описание API в Protobuf и генерация серверных и клиентских заглушек для Go-команды.
- Создание каркаса нового Go-сервиса со стандартной структурой проекта.
Быстрый старт
- 1
Установите Go toolchain, protoc и protoc-gen-go, как указано в требованиях
- 2
Установите Kratos CLI
go install github.com/go-kratos/kratos/cmd/kratos/v3@latest - 3
Создайте новый сервис с именем helloworld
kratos new helloworld - 4
Перейдите в каталог проекта, загрузите зависимости и запустите сервис
cd helloworld && go mod tidy && kratos run
Что важно знать
- Для генерации кода protoc и protoc-gen-go нужно установить отдельно.
- Требуется Go 1.25 или более поздняя версия.
В подборках
Темы
Частые вопросы
- Что такое kratos?
- Лёгкий Go-фреймворк для облачных микросервисов с единым транспортом HTTP и gRPC, middleware и генерацией кода на основе Protobuf. Kratos — Go-фреймворк для создания облачных микросервисов. Он предлагает компактные и понятные API для транспорта, middleware, реестра сервисов, конфигурации, логирования, кодирования и генерации кода, чтобы разработчики могли больше времени уделять бизнес-логике.
- kratos можно использовать бесплатно? Какая у него лицензия?
- kratos распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- kratos всё ещё поддерживается?
- Активно поддерживается. Последний коммит в kratos — 21 окт. 2026 г..
- Для чего можно использовать kratos?
- Создание набора Go-микросервисов, взаимодействующих по gRPC и HTTP. Описание API в Protobuf и генерация серверных и клиентских заглушек для Go-команды. Создание каркаса нового Go-сервиса со стандартной структурой проекта.
- Как установить kratos?
- Установите Go toolchain, protoc и protoc-gen-go, как указано в требованиях Установите Kratos CLI: go install github.com/go-kratos/kratos/cmd/kratos/v3@latest Создайте новый сервис с именем helloworld: kratos new helloworld Перейдите в каталог проекта, загрузите зависимости и запустите сервис: cd helloworld && go mod tidy && kratos run
- Где скачать kratos?
- Исходный код и инструкции по установке — на GitHub: https://github.com/go-kratos/kratos
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.
Плагин protoc, который генерирует сервер обратного прокси, преобразующий RESTful HTTP-запросы с JSON в gRPC-запросы для сервисов на Go.
Нативный для Kubernetes API-шлюз на базе Envoy, реализующий Gateway API и поддерживающий сценарии использования AI-шлюза.
Высокопроизводительный HTTP-фреймворк для Go с API в стиле Martini, предназначенный для REST API, веб-приложений и микросервисов.
Инструмент для документирования архитектуры ПО: каталог доменов, сервисов, событий, сообщений и схем для команд и AI-агентов.