Skip to content

prospero78/kern

Repository files navigation

kern

Coverage MX Linux Go GitHub Visual Studio Code License: MIT Stat

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 # Запуск линтеров

About

Highly modular, robust components for the core of your microservice

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages