# kern
**kern v3** -- фреймворк модульных компонентов ядра с высокой надёжностью для любого микросервиса или модульного монолита. Позволяет создавать изолированные модули в составе монолита (полезно в начале разработки). А затем модули можно выносить в отдельные микросервисы (после отладки).
---
## 📖 Документация
- [📚 Полный путеводитель по проекту](./v3/docs/index.md)
- [🔧 Сборка, настройка и запуск](#сборконастройкаизапуск)
- [🏗️ Архитектура](#архитектура)
- [📦 Компоненты и модули](#компонентыимодули)
- [🧪 Тестирование](#тестирование)
- [🔍 Линтеры](#линтеры)
---
## 🛠️ Сборка, настройка и запуск
### Требования
- Go 1.24.2 или выше
- `task` для управления задачами
### Команды сборки
```bash
$ task -a
task: Available tasks for this project:
* default: Вывод справки
* demo: Запуск демо-проекта
* lint: Запуск всех линтеров
* mod: Обновление зависимостей
* test: Запуск тестов
```
### Быстрый старт
```bash
# Сборка
go build ./...
# Запуск демо
./demo.sh
# Запуск линтеров
task lint
```
---
## 🏗️ Архитектура
kern использует модульную архитектуру, позволяющую бесшовно переходить от модульного монолита к микросервисам.
### Структура проекта
- **Ядро** — базовые компоненты и интерфейсы
- **Компоненты** — вспомогательные утилиты
- **Модули** — функциональные блоки
### Подход
1. Начните с модульного монолита для быстрого старта
2. После стабилизации выносите модули в отдельные микросервисы
3. Документируйте каждый слой с прямыми и обратными ссылками
---
## 📦 Компоненты и модули
- [Ядро](./v3/docs/index.md#ядро)
- [Компоненты](./v3/docs/index.md#компоненты)
- [Модули](./v3/docs/index.md#модули)
[Подробнее →](./v3/docs/index.md)
---
## 🧪 Тестирование
```bash
task test
```
Покрытие тестами: 100%
---
## 🔍 Линтеры
```bash
task lint
```
Статус: no errors
---
## 👥 Контакты
Пишите запросы в соответствующем [разделе](https://gitp78su.ipnodns.ru/svi/kern/issue?status=).
---
## 📊 Статус проекта
- **Готовность:** 100% (проект продолжает развиваться)
- **Покрытие тестами:** 100%
- **Линтеры:** no errors
- **Цикломатическая сложность:** < 11
---
## 📜 Лицензия
v1, v2, v3 (код открытый, [лицензия UCL](https://gitp78su.ipnodns.ru/svi/ucl) или `MIT`.)
---
## 📦 Версия компилятора
Не ниже `go 1.24.2`