Канальная абстракция
Все каналы реализуют единый контракт из модуля channel/api. Это позволяет добавлять новые платформы без изменения ядра системы.
Что входит в контракт
Заголовок раздела «Что входит в контракт»ChannelConnector— интерфейс запуска, остановки и отправки сообщенийIncomingMessage/OutgoingMessage— модели входящих и исходящих сообщенийAttachment— модель вложения с типом и даннымиChannelIdentity— уникальный идентификатор контакта в рамках канала
Передача вложений между каналами
Заголовок раздела «Передача вложений между каналами»Вложения передаются через in-memory буфер (RAM relay): отдающий канал выгружает файл в буфер, принимающий забирает. Транзитные файлы на диск не записываются.
Готовые реализации
Заголовок раздела «Готовые реализации»| Модуль | Платформа |
|---|---|
channel/telegram | Telegram Bot API (tgbotapi) |
channel/email | IMAP + SMTP (Jakarta Mail) |
channel/vkontakte | VK API (Ktorfit) |
Для добавления нового канала достаточно реализовать ChannelConnector и зарегистрировать его в Koin.