9个不稳定版本 (4个破坏性更新)
0.5.2 | 2024年7月6日 |
---|---|
0.5.0 | 2024年2月21日 |
0.2.1 | 2023年5月26日 |
0.1.1 | 2023年2月21日 |
#103 in 并发
每月209次下载
用于 2 crate
71KB
1K SLoC
I/O反应器
无Rust异步问题的并发I/O
此存储库提供了一组用于并发访问I/O资源(文件、网络、设备等)的库,这些库使用可插拔的poll
系统调用引擎的reactor模式。这允许在单个线程的范围内处理多个网络连接等情况(参见C10k问题)。
该crate可用于构建无需使用async
轮询所有API的并发微服务架构。
反应器设计模式是一种事件处理模式,用于处理由一个或多个输入并发提交给服务处理器的服务请求。然后,服务处理器将接收到的请求解多路复用,并同步地将它们调度到相关的服务[^1]。
核心概念
- 资源:任何可以向系统提供输入或从系统消耗输出的资源。
- 运行时:运行事件循环,阻止所有资源。当可以在不阻塞的情况下开始对资源的同步操作时发送资源服务(例如:如果没有可读数据,对read()的同步调用将阻塞)。
- 服务:应用为特定资源集提供的自定义业务逻辑。服务向反应器运行时公开了处理器API。它还负责创建和销毁资源。
文档
库的API参考文档可以在https://docs.rs/io-reactor/找到。
许可
库根据Apache 2.0开源许可证分发。有关许可详细信息,请参阅LICENCE文件。
[^1]: Schmidt, Douglas et al. Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects. Volume 2. Wiley, 2000.
依赖项
~0.8–9.5MB
~94K SLoC