20个版本
0.10.1 | 2024年8月6日 |
---|---|
0.10.0 | 2024年2月23日 |
0.9.0 | 2022年3月19日 |
0.8.0 | 2021年6月26日 |
0.1.4 | 2020年7月27日 |
562 在 网络编程
124 每月下载量
用于 2 crates
61KB
1K SLoC
blather
一个健谈的、某种程度上类似于HTTP的基于行的协议,作为tokio-util Codec实现。
lib.rs
:
一个主要用于基于行的键值对协议的协议和通信库。
通信缓冲区
blather 定义了一些缓冲区,用于在其通信模块中发送和接收信息。
电报
最核心的通信缓冲区是 Telegram
,它由一个 主题 和零个或多个键值对组成,其中每个键必须是唯一的。
use blather::Telegram;
let mut tg = Telegram::new_topic("AddUser").unwrap();
tg.add_param("Name", "Frank Foobar");
tg.add_param("Job", "Secret Agent");
tg.add_param("Age", "42");
assert_eq!(tg.get_topic(), Some("AddUser"));
assert_eq!(tg.get_str("Name").unwrap(), "Frank Foobar");
assert_eq!(tg.get_param::<u8>("Age").unwrap(), 42);
参数
这些是简单的键值对,可以看作是带有一些键名限制的HashMap
。
use blather::Params;
let mut params = Params::new();
params.add_param("Name", "Frank Foobar");
params.add_param("Job", "Secret Agent");
params.add_param("Age", "42");
assert_eq!(params.get_str("Name").unwrap(), "Frank Foobar");
assert_eq!(params.get_param::<u8>("Age").unwrap(), 42);
一组“参数”,由Params结构体表示,是一组键值对。它们看起来与Telegrams
相似,因为Telegram
使用Params
缓冲区来实现其键值对。
通信
blather通过实现自己的Codec
,使用tokio-util的Framed
框架处理传输。它可以用来发送和接收crate支持的多种通信缓冲区。
依赖
~3–4.5MB
~71K SLoC