SWIM-протокол
Данная библиотека содержит реализацию SWIM-протокола на языке Clojure со следующими возможностями:
-
Обмен сообщениями между узлами по протоколу UDP;
-
Шифрование всех UDP-сообщений между узлами по алгоритму AES-256;
-
Автоматическое проведение “расследований” отказа узлов через доступные узлы;
-
Распространение полезной нагрузки между узлами;
-
Многопоточная работа на основе Virtual threads, Java 19+.
Проект создан на основе Шаблона библиотеки.
Перед началом работы с проектом см. раздел Установка зависимостей.
Подключение библиотеки
В файл CLI/deps.edn добавьте в секцию :deps {…} координаты:
org.rssys/swim {:git/tag "" :git/sha "" :git/url "https://gitflic.ru/project/red-stars-systems/swim.git"}
Раздел для разработчиков
Цели проекта
Для настройки целей проекта используйте файлы bb.edn
и build.clj
.
Для вывода списка целей проекта запустите команду bb tasks
:
clean Очистить содержимое папки target
build Собрать дистрибутив библиотеки в виде jar файла
install Установить локально jar файл (требуется pom.xml файл)
deploy Опубликовать jar файл в публичный репозиторий
release Сделать выпуск: присвоить тэг, сделать сборку, опубликовать в репозиторий
test Запустить тесты
repl Запустить Clojure REPL
outdated Проверить устаревшие зависимости
outdated:fix Проверить устаревшие зависимости и обновить
format Форматировать исходный код
lint Проверить исходный код линтером
docmd Конвертация README.adoc в Markdown формат
requirements Установить зависимости необходимые проекту
Установка зависимостей
Для работы над проектом необходимо однократно выполнить установку зависимостей в среде Alt Linux p10.
Получение прав sudo
Установка разрешения на запуск sudo
для текущего пользователя:
SUDO_USER=`whoami`; su -c "echo '$SUDO_USER ALL=(ALL:ALL) ALL' > /etc/sudoers.d/$SUDO_USER"
Установка Babashka
-
Скачать и распаковать babashka:
-
Для aarch64
curl -O https://cdn01.rssys.org/babashka/babashka-1.3.186-linux-aarch64-static.tar.gz tar xvf babashka-1.3.186-linux-aarch64-static.tar.gz
-
для amd64/x86_64:
curl -O https://cdn01.rssys.org/babashka/babashka-1.3.186-linux-amd64-static.tar.gz tar xvf babashka-1.3.186-linux-amd64-static.tar.gz
-
-
Установка babashka:
sudo mv ./bb /usr/local/bin/ rm -f bb babashka*
Установка JDK
Скрипт установки автоматизирует установку OpenJDK 21 в ОС Alt Linux.
jdk21-install.sh
bb <(curl -s https://cdn01.rssys.org/bin/install-jdk.bb)
Установка bb как утилиты clojure
Скрипт установки автоматизирует установку babashka
в качестве утилиты clojure
и clj
install-deps.sh
bb <(curl -s https://cdn01.rssys.org/bin/install-clj.bb)
Установка инструмента управления шаблонами
Установка инструмента работы с шаблонами Leiningen/Boot/clj-template deps-new
clojure -Ttools install io.github.seancorfield/deps-new '{:git/tag "v0.5.2"}' :as new
Данный инструмент будет установлен в каталог ~/.gitlibs/libs/
Лицензия
© 2023 Михаил Ананьев.
Данный проект распространяется под Открытой лицензией на программное обеспечение РЭД СТАРС СИСТЕМС 1.0
Текст лицензии находится в файле LICENSE или по ссылке.