1 个不稳定版本
0.1.0 | 2023 年 6 月 26 日 |
---|
#1622 在 异步
25KB
387 行
Rust 中的简单异步消息传递
sampr 包提供了一种受 actix 启发的消息传递框架。与后者不同,sampr 使用 Rust 的 async/await 语言功能来处理 futures。
概述
演员 通过为任意类型实现 Actor
特性来定义。一个 Actor
可以通过为特定消息实现 Handler<M>
特性来接收和处理消息。启动时,每个 Actor
都会以其 Context
的形式异步运行,作为单独的 tokio::task
的一部分。每当接收到消息时,都会调用相应的处理器函数。由于 Rust 在编写此文档时还不支持异步函数在特型中,因此 sampr 目前依赖于 async_trait。
当前功能
- 在演员之间发送消息并等待其结果。
- 在演员的上下文中启动 futures 并等待其解决。
- 将
Stream
添加到演员的上下文中并等待其产生项目。 - 停止演员,将对象移回调用者。
缺少的功能
- 在演员之间发送消息而不会阻塞发送者的
Context
,即一个接受回调的.send()
函数(这已经可以通过启动一个任务来实现,但需要一些语法糖)。 - 定时器,用于定期执行工作。
依赖项
~3–4.5MB
~80K SLoC