kern -- фреймворк модульных компонентов ядра с высокой надёжностью для любого микросервиса или модульного монолита. Позволяет создавать изолированные модули в составе монолита (полезно в начале разработки). А затем модули можно выносить в отдельные микросервисы (после отладки).
Пишите запросы в соответствующем разделе.
- готовность:
92%; - покрытие тестами:
100%; - линтеры:
no errors; - цикломатическая сложность:
< 11.
Команда вывода дерева:
tree -I vendor -I bin_dev -d.
├── kc # Вспомогательные компоненты
│ ├── helpers # Жёсткий и мягкий assert
│ ├── local_ctx # Локальный контекст
│ │ └── ctx_value # Переменная контекста с метаинформацией
│ ├── log_buf # Буферизованный лог
│ │ └── log_msg # Сообщение буферизованного лога
│ └── safe_bool # Потокобезопасная булева переменная
├── krn # Компоненты ядра
│ ├── kalias # Алиасы типов ядра
│ ├── kbus # Шина данных ядра
│ │ ├── dict_sub_hook # Словарь обработчиков подписок
│ │ ├── dict_topic_serve # Список топиков для обработчиков входящих запросов
│ │ ├── dict_topic_sub # Список топиков подписки
│ │ ├── kbus_base # БазоваЯ шина данных
│ │ ├── kbus_http # Шина данных поверх HTTP
│ │ │ └── client_bus_http # Клиент для шины данных поверх HTTP
│ │ ├── kbus_local # Локальная шина данных
│ │ │ └── client_bus_local # Клиент для локальной шины данных
│ │ └── kbus_msg # Сообщения для всех сетевых шин
│ │ ├── msg_pub # Сообщения для публикации
│ │ ├── msg_serve # Сообщения для запросов
│ │ ├── msg_sub # Сообщения для подписки
│ │ └── msg_unsub # Сообщения для отписки
│ ├── kctx # Контекст ядра
│ │ ├── kernel_keeper # Сторож сигналов ОС
│ │ └── kwg # Именованный ожидатель групп
│ ├── kmodule # Компонент модуль ядра
│ ├── kmonolit # Компонент модульного монолита ядра
│ ├── kserv_http # Компонент встроенного быстрого HTTP-сервера (fiber)
│ │ └── static # Встраиваемые статические файлы
│ │ ├── css # Встраиваемые стили (bootstrap)
│ │ └── js # Встраиваемые скрипты (htmx, hyperscript, bootstrap)
│ ├── kstore_kv # Встраиваемое быстрое key:value хранилище (Badger)
│ └── ktypes # Интерфейсы ядра
├── mds # Типовые модули ядра
└── mock # Мок-объекты для тестирования и экспериментов
├── mock_env # Мок-окружение для запуска компонентов ядра
├── mock_hand_serve # Мок-обработчик входящих запросов
├── mock_hand_sub_http # Мок-обработчик подписки через HTTP-шину
└── mock_hand_sub_local # Мок-обработчик подписки через локальную шинуНе ниже go 1.24.0
Код открытый, лицензия MIT
make # Запуск демо
make demo # -//-
make mod # Обновление зависимостей
make test # Запуск тестов
make lint # Запуск линтеров