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 在 网络编程
每月下载量 141
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 有一个可选依赖项,如果启用,则可以通过日志提供详细见解。如果未启用功能,则不会编译任何日志语句。
通常使用日志级别如下
ERROR
和WARN
:实际问题(不是协议级别错误)——期望对等错误,并且不需要WARN
级别。INFO
:有关接收到的低级别事件(例如连接、断开连接等)的见解,但与单个请求/消息有关的信息除外。DEBUG
:详细见解直至单个请求级别,但不是帧级别。单个多兆字节的单条消息传输不会阻塞日志。TRACE
:类似于DEBUG
,但还包括帧和链路层信息,以及被调用的本地函数。
在 INFO
时,因此可以想象对等方可能会恶意垃圾邮件本地日志,尽管如果连接尝试速率限制则需要一些努力。在 DEBUG 或更低级别,这变得微不足道。
依赖项
~3.5–5MB
~88K SLoC