Обзор
SuperBotGo - мультиканальная бот-платформа с поддержкой нескольких мессенджеров (Telegram, Discord и др.). Функциональность бота расширяется через плагины - изолированные WebAssembly-модули. Плагины можно писать на любом языке, компилируемом в WASM (Go, Rust, C и др.).
Что такое плагин
Плагин - это один .wasm файл, который содержит:
- Команды - slash-команды для мессенджеров (
/help,/search,/report) - HTTP-эндпоинты - для интеграции с внешними системами
- Cron-задачи - действия по расписанию
- Подписки на события - реакция на события от других плагинов
Плагин работает в песочнице: у него нет доступа к файловой системе, сети или другим процессам. Взаимодействие с внешним миром происходит только через Host API.
Как это работает
Команда в мессенджере
Пользователь вводит команду в мессенджере. Если команда содержит шаги, бот последовательно собирает параметры через сообщения и кнопки. После сбора всех параметров платформа запускает обработчик плагина, который формирует ответ.
HTTP-запрос
Плагин регистрирует HTTP-эндпоинт с указанным путём и методами. Внешняя система отправляет запрос на этот эндпоинт, платформа маршрутизирует его в плагин, который обрабатывает данные и возвращает HTTP-ответ.
Cron-расписание
Платформа вызывает плагин по расписанию в формате cron. Плагин выполняет действие и при необходимости отправляет сообщения в чаты.
Шина событий
Плагины обмениваются данными через топики. Один плагин публикует событие, другие подписываются и реагируют.
Схема взаимодействия
С чего начать
- Быстрый старт - создайте первый плагин за 5 минут
- Структура плагина - как устроен плагин изнутри
- Триггеры - Messenger-команды, HTTP, Cron, Event Bus
- Конфигурация - типизированная схема конфигурации