Chat platform adapters for Garudust agents.
Each adapter implements [garudust_core::platform::PlatformAdapter] and
connects the agent to an external messaging platform. Enable only the
platforms you need via Cargo features.
Feature flags
| Feature | Platform | Adapter |
|---|---|---|
telegram (default) |
Telegram Bot API | [telegram::TelegramAdapter] |
webhook (default) |
HTTP Webhook | [webhook::WebhookAdapter] |
discord |
Discord Gateway | [discord::DiscordAdapter] |
slack |
Slack RTM/Events | [slack::SlackAdapter] |
matrix |
Matrix (Element) | [matrix::MatrixAdapter] |
line |
LINE Messaging API | [line::LineAdapter] |
all |
All of the above | — |
Example — running Telegram and a webhook simultaneously
use std::sync::Arc;
use garudust_platforms::{telegram::TelegramAdapter, webhook::WebhookAdapter};
use garudust_core::platform::{MessageHandler, PlatformAdapter};
async fn start(handler: Arc<dyn MessageHandler>) -> anyhow::Result<()> {
let tg = TelegramAdapter::new(std::env::var("TELEGRAM_TOKEN")?);
let wh = WebhookAdapter::new(3001);
tg.start(handler.clone()).await?;
wh.start(handler).await?;
Ok(())
}