8 个版本 (4 个重大变更)
0.6.0 | 2023 年 6 月 25 日 |
---|---|
0.5.0 | 2021 年 7 月 10 日 |
0.4.1 | 2021 年 6 月 25 日 |
0.3.3 | 2021 年 6 月 6 日 |
0.2.0 | 2021 年 5 月 22 日 |
#2148 in 解析器实现
65 个月下载量
用于 2 crate
90KB
2.5K SLoC
一个使用 nom 实现的 Rust crate,用于解析 Stomp 帧。
lib.rs
:
stomp_parser
实现了一个 STOMP 帧的模型,如 STOMP 协议规范,版本 1.2 中所述。这些帧可以从字节数组解析并序列化。
对库用户来说,主要感兴趣的类型是枚举 client::ClientFrame
和 server::ServerFrame
,它们分别模拟 STOMP 客户端和 STOMP 服务器可以发送的帧。通过这些类型上的 try_from
获取帧。
示例
use std::convert::TryFrom;
use stomp_parser::client::ClientFrame;
use stomp_parser::headers::HeaderValue;
let message = b"SEND\n\
destination:stairway/to/heaven\n\
\n\
Lorem ipsum dolor sit amet,...\x00"
.to_vec();
if let Ok(ClientFrame::Send(frame)) = ClientFrame::try_from(message) {
assert_eq!("stairway/to/heaven", frame.destination.value());
assert_eq!(b"Lorem ipsum dolor sit amet,...", frame.body().unwrap());
} else {
panic!("Send Frame not parsed correctly");
}
依赖项
~1MB
~21K SLoC