#service #async #io #rpc

edelcrantz

异步点对点RPC和消息服务

9个版本 (5个破坏性版本)

0.6.1 2020年12月29日
0.6.0 2020年12月26日
0.5.0 2020年12月13日
0.4.2 2020年12月9日
0.1.0 2020年7月18日

#227 in #rpc


2个crate中使用(通过clepsydra

MIT/Apache

25KB
419

Edelcrantz

这是一个用于编写网络服务的轻量级crate,具有以下特定功能:

  • 异步通信,支持serde序列化类型。
  • 对称/点对点:没有区分客户端或服务器。
  • 流水线:同时允许执行多个请求。
  • 支持“单向”请求,没有配对响应。
  • 异步生态系统无关:不引入async_std或tokio(除非作为测试的dev-dependencies)。

没有集成的事件循环或任务生成:您需要从自己的任务或异步函数中调用此crate的主Connection类型的方法。

名称

亚伯拉罕·尼古拉斯·埃德尔克拉茨(1754-1821)开发了瑞典光电信系统,该系统从1795年运行到1881年。


lib.rs:

这是一个用于编写网络服务的轻量级crate,具有以下特定功能:

  • 异步通信,支持serde序列化类型。
  • 对称/点对点:没有区分客户端或服务器。
  • 流水线:同时允许执行多个请求。
  • 支持“单向”请求,没有配对响应。
  • 异步生态系统无关:不引入async_std或tokio(除非作为测试的dev-dependencies)。

没有集成的事件循环或任务生成:您需要从自己的任务或异步函数中调用此crate的主[Connection]类型的方法。

使用方法

此crate期望调用者执行以下三个主要步骤:

  • 将消息入队以发送,无论是通过Connection::enqueue_oneway发送的单向消息(不会生成相应的future),还是通过Connection::enqueue_request发送的消息(生成一个future,当配对响应到达时将被填充)。
  • 调用Connection::advance并等待其返回的future(通常在循环中),以推进对等方通过内部步骤,如出队、发送、接收、服务、响应和响应future的履行。这要求调用者提供回调。
  • 可选地等待在第一步中生成的响应future。

将这些步骤进行排序并将它们集成到一组异步任务或事件循环中留由调用者完成。一些示例可以在测试模块中找到。

名称

亚伯拉罕·尼古拉斯·埃德尔克拉茨(1754-1821)开发了瑞典光电信系统,该系统从1795年运行到1881年。

依赖关系

~1.8–2.7MB
~51K SLoC