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
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 |
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 |
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 logicfilter-- 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