Skip to main content

Crate dravr_canot

Crate dravr_canot 

Source
Expand description

§Dravr Channels

A unified messaging interface for routing conversations through external chat platforms (Whatsapp, Messenger, Discord, Slack, Telegram).

§Integration Modes

  1. Programmatic — use the MessagingChannel trait directly in your Rust code
  2. Server — run dravr-canot-server as a standalone REST + MCP API server

§Architecture

Each channel implements two traits:

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 ChannelType to 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