About this project
TinyChannels is a Rust library that provides channel and messaging primitives for the OpenHuman framework. It offers a portable channel contract, configuration schema, connection metadata, route helpers, and a backend delegation layer. This design connects channel surfaces to OpenHuman harnesses without coupling this crate to the main OpenHuman application crate.
Runtime side effects are pluggable through the `ChannelBackend` trait. OpenHuman owns the actual backend implementation for REST/JWT/config storage, while this crate validates channel metadata and delegates operations through that trait.
The library includes optional provider implementations that must be explicitly enabled via Cargo features:
- **Email (send only)**: SMTP send via `lettre`.
- **Email**: SMTP + IMAP via `lettre`, `async-imap`, and `mail-parser`.
- **Lark/Feishu**: Webhook receiver + Protobuf decoder via `axum` and `prost`.
- **WhatsApp Web**: Multi-device support via `whatsapp-rust`.
Other providers, including Telegram, Discord, Slack, Signal, iMessage, IRC, and Yuanbao/DingTalk, are included in the default build. The crate is not published to crates.io; it is consumed via a vendored path dependency or a direct Git dependency.
The repository is organized into several crates and modules:
- `tinychannels-bus`: The core contract, including `Channel`, `ChannelMessage`, `SendMessage` traits, configuration, capabilities, and conversation keys.
- `tinychannels-runtime`: Listener supervision, bounded dispatch loop, logout-scoped sessions, health checks, and a console `CliChannel`.
- `tinychannels-module`: The loadable TinyBus module.
- `src/delivery/`: Durable outbound queue and a streaming reply driver for draft, thinking, and filler bubbles.
- `src/remote/`: Implements status, sessions, new, and help commands for providers with remote control capability.
- `src/approvals/`: Sends in-chat approval prompts for providers with chat approval capability.
- `src/relay/`: Relay transport loop, WebSocket dialer, and process-wide transport registry.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.