#llm #ai-agent #run-time

ironclad-channels

Chat adapters for Telegram, WhatsApp, Discord, WebSocket, and A2A protocol

27 releases (8 breaking)

Uses new Rust 2024

new 0.9.8 Mar 17, 2026
0.8.9 Mar 1, 2026

#249 in #run-time


Used in ironclad-server

Apache-2.0

1.5MB
33K SLoC

ironclad-channels

Version 0.5.0

Channel adapters for user-facing chat platforms and the zero-trust agent-to-agent (A2A) communication protocol for the Ironclad agent runtime.

Supported Channels

Channel Module Status
Telegram telegram Full (Bot API, long-poll + webhook, Markdown V2)
WhatsApp whatsapp Full (Cloud API, webhook, templates)
Discord discord Full (Gateway, slash commands, rich embeds)
Signal signal Full (signal-cli daemon, JSON-RPC)
WebSocket web Full (axum ws, JSON frames, heartbeat)
Voice voice WebRTC + STT/TTS pipeline
Email email IMAP listener + SMTP sender
A2A a2a Zero-trust protocol (ECDH, AES-256-GCM)

Key Types & Traits

Type Module Description
ChannelAdapter lib Trait: recv(), send(), platform_name()
InboundMessage lib Normalized inbound message from any platform
OutboundMessage lib Normalized outbound message
ChannelRouter router Multi-channel message routing and dispatch
A2aProtocol a2a ECDH handshake, AES-256-GCM encryption, DID verification

Additional Modules

  • delivery -- Outbound delivery queue with retry logic
  • filter -- Addressability filter (per-channel routing rules, keyword triggers, mention-only)

Usage

[dependencies]
ironclad-channels = "0.5"
use ironclad_channels::{ChannelAdapter, InboundMessage, OutboundMessage};

// All channel adapters implement the ChannelAdapter trait

Documentation

API docs are available on docs.rs.

License

Licensed under Apache-2.0. See LICENSE for details.

Dependencies

~59MB
~1M SLoC