kern -- фреймворк повышенной надёжности для модульных монолитов и модульных микросервисов.

SVI 6863ccebe9 SVI Начало добавления WUI; 100.0% 1 éve
cmd a0cde0d1e6 SVI Добавление функций, нейминг; 100.0% 1 éve
docs b17f213f44 SVI Исправление README.md; 100.0% 1 éve
kc adb85820ac SVI Изменение интерфейсов; 100.0% 1 éve
krn adb85820ac SVI Изменение интерфейсов; 100.0% 1 éve
mds a0cde0d1e6 SVI Добавление функций, нейминг; 100.0% 1 éve
mock d3589a5b2f SVI Перенос кода; 100.0% 1 éve
vendor 5eb6138707 SVI Вендоринг, функции; 100.0% 1 éve
wui 6863ccebe9 SVI Начало добавления WUI; 100.0% 1 éve
.env d3589a5b2f SVI Перенос кода; 100.0% 1 éve
.gitignore d3589a5b2f SVI Перенос кода; 100.0% 1 éve
LICENSE.md 110dc84f42 SVI Исправление README.md; 100.0% 1 éve
Makefile d3589a5b2f SVI Перенос кода; 100.0% 1 éve
README.md b17f213f44 SVI Исправление README.md; 100.0% 1 éve
demo.sh d3589a5b2f SVI Перенос кода; 100.0% 1 éve
go.mod 5eb6138707 SVI Вендоринг, функции; 100.0% 1 éve
go.sum 5eb6138707 SVI Вендоринг, функции; 100.0% 1 éve
kern.go a0cde0d1e6 SVI Добавление функций, нейминг; 100.0% 1 éve
kern_test.go a0cde0d1e6 SVI Добавление функций, нейминг; 100.0% 1 éve

README.md

kern

Coverage MX Linux Go GitHub Visual Studio Code

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

Лицензия

Код открытый, лицензия UCL или MIT.

Команды сборки

make      # Запуск демо
make demo # -//-
make mod  # Обновление зависимостей
make test # Запуск тестов
make lint # Запуск линтеров

Различные полезняшки

смотреть здесь