Sobre el proyecto
TinyChannels es una biblioteca de Rust que proporciona primitivas de canales y mensajería para el framework OpenHuman. Ofrece un contrato de canal portable, un esquema de configuración, metadatos de conexión, ayudantes de rutas y una capa de delegación de backend. Este diseño conecta las superficies de canal con los harnesses de OpenHuman sin acoplar este crate al crate principal de la aplicación OpenHuman.
Los efectos secundarios en tiempo de ejecución son conectables a través del trait `ChannelBackend`. OpenHuman posee la implementación real del backend para REST/JWT/almacenamiento de configuración, mientras que este crate valida los metadatos del canal y delega las operaciones a través de ese trait.
La biblioteca incluye implementaciones opcionales de proveedores que deben habilitarse explícitamente mediante las características de Cargo:
- **Email (solo envío)**: envío SMTP mediante `lettre`.
- **Email**: SMTP + IMAP mediante `lettre`, `async-imap` y `mail-parser`.
- **Lark/Feishu**: receptor de Webhook + decodificador Protobuf mediante `axum` y `prost`.
- **WhatsApp Web**: soporte multidispositivo mediante `whatsapp-rust`.
Otros proveedores, incluidos Telegram, Discord, Slack, Signal, iMessage, IRC y Yuanbao/DingTalk, se incluyen en la compilación predeterminada. El crate no se publica en crates.io; se consume mediante una dependencia de ruta vendorizada o una dependencia directa de Git.
El repositorio está organizado en varios crates y módulos:
- `tinychannels-bus`: el contrato central, que incluye los traits `Channel`, `ChannelMessage`, `SendMessage`, configuración, capacidades y claves de conversación.
- `tinychannels-runtime`: supervisión de listeners, bucle de despacho acotado, sesiones con alcance de cierre de sesión, comprobaciones de estado y un `CliChannel` de consola.
- `tinychannels-module`: el módulo TinyBus cargable.
- `src/delivery/`: cola de salida duradera y un controlador de respuestas en streaming para burbujas de borrador, pensamiento y relleno.
- `src/remote/`: implementa los comandos status, sessions, new y help para proveedores con capacidad de control remoto.
- `src/approvals/`: envía solicitudes de aprobación en el chat para proveedores con capacidad de aprobación por chat.
- `src/relay/`: bucle de transporte de retransmisión, marcador WebSocket y registro de transporte a nivel de proceso.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.