Repolode
go-kratos

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. 1

    Установите Go toolchain, protoc и protoc-gen-go, как указано в требованиях

  2. 2

    Установите Kratos CLI

    go install github.com/go-kratos/kratos/cmd/kratos/v3@latest
  3. 3

    Создайте новый сервис с именем helloworld

    kratos new helloworld
  4. 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 обновляется ежедневно.

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