Высокопроизводительный HTTP-фреймворк для Go с API в стиле Martini, предназначенный для REST API, веб-приложений и микросервисов.
evrone/go-clean-template
Шаблон проекта на Clean Architecture для Go-сервисов: примеры организации кода с REST, gRPC, AMQP RPC и NATS RPC.
- Звёзды
- 7,708
- Форки
- 665
- Открытые issues
- 3
- Последний коммит
- 11 дней назад
Что это?
go-clean-template — отправная точка для Go-микросервисов, построенных по принципам Clean Architecture. Бизнес-логика отделена от инфраструктуры — баз данных, веб-фреймворков и брокеров сообщений, — поэтому основные сценарии использования зависят только от интерфейсов и стандартной библиотеки. Шаблон помогает поддерживать порядок в сервисе по мере его развития.
В шаблоне есть три примера предметных областей: аутентификация пользователей с JWT, управление задачами с переходами между статусами и перевод текста с отслеживанием истории. Каждая область доступна через четыре транспорта: REST API на Fiber, gRPC и RPC через RabbitMQ (AMQP) и NATS. Зависимости внедряются с помощью конструкторов New, а в репозитории есть конфигурация Docker Compose для Postgres, RabbitMQ, NATS и Jaeger.
Проект также охватывает наблюдаемость: трассировки OpenTelemetry с передачей контекста через все четыре транспорта, метрики Prometheus, документацию Swagger, интеграционные тесты и миграции базы данных.
Ключевые возможности
- 01Слои Clean Architecture и внедрение зависимостей через конструкторы New
- 02REST API на Fiber с документацией Swagger, сгенерированной с помощью swag
- 03Сервисы gRPC, описанные с помощью protobuf
- 04RPC-серверы на RabbitMQ (AMQP) и NATS с моделью запрос-ответ
- 05Трассировки OpenTelemetry и метрики Prometheus
- 06Стек Docker Compose с Postgres, RabbitMQ, NATS и Jaeger
Сценарии использования
- Создание нового Go-микросервиса с единообразной структурой проекта
- Изучение способов отделения бизнес-логики от транспорта и хранилища в Go
- Создание сервиса, который предоставляет одну и ту же логику через REST, gRPC и очереди сообщений
Быстрый старт
- 1
Запустите Postgres, RabbitMQ и NATS с помощью Docker Compose
make compose-up - 2
Запустите приложение вместе с миграциями
make run
Что важно знать
- Для локальной разработки требуется Docker Compose, чтобы запускать Postgres, RabbitMQ и NATS.
Темы
Частые вопросы
- Что такое go-clean-template?
- Шаблон проекта на Clean Architecture для Go-сервисов: примеры организации кода с REST, gRPC, AMQP RPC и NATS RPC. go-clean-template — отправная точка для Go-микросервисов, построенных по принципам Clean Architecture. Бизнес-логика отделена от инфраструктуры — баз данных, веб-фреймворков и брокеров сообщений, — поэтому основные сценарии использования зависят только от интерфейсов и стандартной библиотеки. Шаблон помогает поддерживать порядок в сервисе по мере его развития.
- go-clean-template можно использовать бесплатно? Какая у него лицензия?
- go-clean-template распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- go-clean-template всё ещё поддерживается?
- Активно поддерживается. Последний коммит в go-clean-template — 11 окт. 2026 г..
- Для чего можно использовать go-clean-template?
- Создание нового Go-микросервиса с единообразной структурой проекта Изучение способов отделения бизнес-логики от транспорта и хранилища в Go Создание сервиса, который предоставляет одну и ту же логику через REST, gRPC и очереди сообщений
- Как установить go-clean-template?
- Запустите Postgres, RabbitMQ и NATS с помощью Docker Compose: make compose-up Запустите приложение вместе с миграциями: make run
- Где скачать go-clean-template?
- Исходный код и инструкции по установке — на GitHub: https://github.com/evrone/go-clean-template
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
GoWA — self-hosted REST API для WhatsApp на Go с поддержкой нескольких аккаунтов, вебхуков, MCP и интеграции с Chatwoot.
Мнение-ориентированный Java-фреймворк для создания готовых к эксплуатации приложений и сервисов на Spring с минимальной настройкой.
Реализация исполнительного уровня Ethereum на Go: запуск полного или архивного узла, доступ через JSON-RPC и инструменты для разработчиков.
Реализация WebRTC API на чистом Go для создания одноранговых соединений с передачей аудио, видео и данных в реальном времени.
Быстрый многофункциональный эмулятор терминала с GPU-рендерингом для Linux, macOS и других платформ.