#reactor #pattern #poll #networking

io-reactor

使用反应器模式进行并发I/O资源管理

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 并发

Download history 37/week @ 2024-04-19 61/week @ 2024-04-26 450/week @ 2024-05-03 42/week @ 2024-05-10 62/week @ 2024-05-17 59/week @ 2024-05-24 43/week @ 2024-05-31 38/week @ 2024-06-07 49/week @ 2024-06-14 30/week @ 2024-06-21 20/week @ 2024-06-28 171/week @ 2024-07-05 46/week @ 2024-07-12 20/week @ 2024-07-19 96/week @ 2024-07-26 44/week @ 2024-08-02

每月209次下载
用于 2 crate

Apache-2.0

71KB
1K SLoC

I/O反应器

Build Tests Lints codecov

crates.io Docs Apache-2 licensed

无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