2 releases (1 stable)
new 1.0.0 | Dec 13, 2024 |
---|---|
0.1.0-rc.1 | Dec 13, 2024 |
#57 in Cargo plugins
45KB
933 lines
Cargo plugin for Picodata plugins
Плагин к cargo с функциями для упрощения разработки плагинов к Пикодате.
Установка
cargo install picodata-pike
Quickstart
Начнем работу с новым плагином:
cargo pike plugin new test_plugin
cd test_plugin
Запустим кластер, конфигурацию которого можно задать в ./topology.toml
cargo pike run
В вашем распоряжении окажется рабочий кластер с установленным плагином.
Остановим кластер комбинацией Ctrl+C
или же командой cargo pike stop
в отдельном окне.
Если вам нужно собрать архив для поставки на сервера, это можно сделать командой:
cargo pike plugin pack
В папке target
появиться желанный архив.
Команды
--help
Для всех команд есть флаг --help
выводящий справку по использованию.
cargo pike --help
run
Запуск кластера пикодаты по файлу topology.toml
. Автоматически запускает плагины указанные в топологии.
Пример топологии:
[tiers.default]
instances = 2
replication_factor = 2
[[tiers.default.services]]
name = "main"
plugin = "plugin_name"
cargo pike run --topology topology.toml --data-dir ./tmp
Для отключения автоматической установки и включения плагинов можно использовать опцию --disable-install-plugins
.
Доступные опции
-t, --topology <TOPOLOGY>
- Путь к файлу топологии. Значение по-умолчанию:topology.toml
-d, --data-dir <DATA_DIR>
- Путь к директории хранения файлов кластера. Значение по-умолчанию:./tmp
--disable-install-plugins
- Отключение автоматической установки плагинов-b, --base-http-port <BASE_HTTP_PORT>
- Базовый http-порт, с которого начнут открываться http-порты отдельных инстансов. Значение по-умолчанию:8000
-b, --base-pg-port <BASE_PG_PORT>
- Базовый порт постгрес протокола, с которого начнут открываться порты отдельных инстансов. Значение по-умолчанию:5432
--picodata-path <BINARY_PATH>
- Путь до исполняемого файла Пикодаты. Значение по-умолчанию:picodata
--release
- Сборка и запуск релизной версии плагина.
config.yaml
Пайк позволяет использовать файл конфигурации Пикодаты вместе с запущенным кластером. Пример файла сразу генерируется командами new
и init
. Документацию к параметрам можно найти в документации к Пикодате.
Настройка нескольких тиров
Для настройки необходимо добавить нужные тиры в конфигурацию кластера (файл config.yaml
). И после указать их в файле топологии topology.toml.
Пример добавления тира inokentiy
:
# config.yaml
cluster:
tier:
default:
replication_factor: 2
inokentiy: # новый тир
replication_factor: 1
# topology.toml
# ...
[tiers.inokentiy] # новый тир
instances = 1
replication_factor = 1
stop
Остановить кластер можно либо комбинацией клавиш Ctrl+C в терминале, где вызывалась команда cargo pike run
, либо в другом окне командой:
cargo pike stop --data-dir ./tmp
При помощи --data-dir
указывается путь до директории с файлами кластера (значение по умолчанию: ./tmp
)
Вывод:
[*] stopping picodata cluster, data folder: ./tmp
[*] stopping picodata instance: i_1
[*] stopping picodata instance: i_2
[*] stopping picodata instance: i_3
[*] stopping picodata instance: i_4
Доступные опции
-d, --data-dir <DATA_DIR>
- Путь к директории хранения файлов кластера. Значение по-умолчанию:./tmp
plugin clean
Очистка дата-каталогов пикодаты.
cargo pike clean
Доступные опции
-d, --data-dir <DATA_DIR>
- Путь к директории хранения файлов кластера. Значение по-умолчанию:./tmp
plugin new
Создание нового проекта плагина из шаблона.
cargo pike plugin new name_of_new_plugin
Автоматически инициализирует в проект git. Для отключения этого поведения можно воспользоваться флагом --without-git
.
Доступные опции
--without-git
- Отключение автоматической инициализации git-репозитория-w, --workspace
- Создание проекта плагина как воркспейса
plugin init
Создание нового проекта плагина из шаблона в текущей папке.
cargo pike plugin init
Автоматически инициализирует в проект git. Для отключения этого поведения можно воспользоваться флагом --without-git
.
Доступные опции
--without-git
- Отключение автоматической инициализации git-репозитория-w, --workspace
- Создание проекта плагина как воркспейса
plugin pack
Сборка всех нужных для поставки плагина файлов в один архив (для деплоя или поставки).
cargo pike plugin pack
Команда plugin pack
соберёт релизную версию плагина в новый архив в директории target
проекта.
Доступные опции
--debug
- Сборка и упаковка debug-версии плагина
config apply
Применение конфигурации сервисов плагина к запущенному командой run
кластеру пикодаты.
Пример файла конфигурации сервисов:
# plugin_config.yaml
main: # имя сервиса
value: changed # пример параметра конфигурации
cargo pike config apply
Доступные опции
-c, --config-path <CONFIG>
- Путь к файлу конфига. Значение по-умолчанию:plugin_config.yaml
-d, --data-dir <DATA_DIR>
- Путь к директории хранения файлов кластера. Значение по-умолчанию:./tmp
Dependencies
~13–24MB
~377K SLoC