Expand description
§Dravr Channels
A unified messaging interface for routing conversations through external chat platforms (Whatsapp, Messenger, Discord, Slack, Telegram).
§Integration Modes
- Programmatic — use the
MessagingChanneltrait directly in your Rust code - Server — run
dravr-canot-serveras a standalone REST + MCP API server
§Architecture
Each channel implements two traits:
TransportAdapter— webhook parsing, signature verification, raw HTTP sendResponseRenderer— formatOutgoingMessageinto channel-specific payloads
Re-exports§
pub use channel::MessagingChannel;pub use config_store::ChannelConfigStore;pub use descriptor::ChannelDescriptor;pub use env_config_store::EnvConfigStore;pub use registry::ChannelRegistry;pub use renderer::ResponseRenderer;pub use transport::TransportAdapter;
Modules§
- channel
- Channel trait combining transport and rendering
- channels
- Per-channel adapter implementations
- commands
- Slash command infrastructure for markdown-defined messaging commands
- config
- Runtime configuration loaded from environment variables
- config_
store - Trait for pluggable channel configuration storage backends
- descriptor
- Channel descriptor metadata (name, type, webhook path, capabilities)
- env_
config_ store - Environment-variable-based channel config store for standalone deployments
- error
- Messaging error types
- factory
- Stateless adapter factory for on-demand channel adapter construction
- http_
client - Shared HTTP client for outbound API calls
- meta_
signature - Shared Meta Platform (Messenger + Whatsapp) HMAC-SHA256 signature verification
- models
- Data models: channel types, messages, delivery receipts, configuration
- observability
- Observability helpers for structured tracing spans and metrics
- registry
- Channel registry mapping
ChannelTypeto adapter instances - renderer
- Response renderer trait for channel-specific message formatting
- retry
- Outbound retry worker with exponential backoff and dead-letter queue
- transport
- Transport adapter trait for webhook ingress and outbound HTTP