6 个版本

0.3.0 2024年3月14日
0.2.1 2024年1月23日
0.2.0 2023年11月24日
0.1.2 2023年11月24日

#1481网络编程

Download history 63/week @ 2024-04-14 119/week @ 2024-04-21 21/week @ 2024-04-28 38/week @ 2024-05-05 62/week @ 2024-05-12 42/week @ 2024-05-19 23/week @ 2024-05-26 37/week @ 2024-06-02 53/week @ 2024-06-09 39/week @ 2024-06-16 32/week @ 2024-06-23 48/week @ 2024-06-30 27/week @ 2024-07-07 25/week @ 2024-07-14 39/week @ 2024-07-21 49/week @ 2024-07-28

每月下载量 141

Apache-2.0

330KB
6K SLoC

Juliet 协议实现

此 crate 实现了 Juliet 多路复用协议版本 1.0.1,该协议在 Juliet RFC 中定义。它旨在成为一个安全、简单、易于验证/审查的实现,同时仍具有合理的性能。

优点

Juliet 协议包含一组核心功能,例如

  • 精心设计,以安全和 DoS 弹性为其首要目标,
  • 可定制的帧大小,
  • 多达 256 个多路复用、交错通道,
  • 内置完全支持背压,以及
  • 低开销(每帧 4 字节 + 1-5 字节,取决于有效负载长度)。

此 crate 的实现包括以下优点

  • Juliet 协议的无副作用实现,
  • bytes crate 集成的异步 IO 层以使用它,以及
  • 在顶部构建的类型安全 RPC 层。

示例

有关快速使用示例,请参阅 examples/fizzbuzz.rs

tracing 支持

此 crate 对 tracing crate 有一个可选依赖项,如果启用,则可以通过日志提供详细见解。如果未启用功能,则不会编译任何日志语句。

通常使用日志级别如下

  • ERRORWARN:实际问题(不是协议级别错误)——期望对等错误,并且不需要 WARN 级别。
  • INFO:有关接收到的低级别事件(例如连接、断开连接等)的见解,但与单个请求/消息有关的信息除外。
  • DEBUG:详细见解直至单个请求级别,但不是帧级别。单个多兆字节的单条消息传输不会阻塞日志。
  • TRACE:类似于 DEBUG,但还包括帧和链路层信息,以及被调用的本地函数。

INFO 时,因此可以想象对等方可能会恶意垃圾邮件本地日志,尽管如果连接尝试速率限制则需要一些努力。在 DEBUG 或更低级别,这变得微不足道。

依赖项

~3.5–5MB
~88K SLoC