#frame #stomp #parser #nom #message-parser #implemented #protocols

stomp-parser

一个用于解析 Stomp 帧的 crate,使用 nom 实现

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 解析器实现

Download history 7/week @ 2024-03-15 16/week @ 2024-03-29 2/week @ 2024-04-05

65 个月下载量
用于 2 crate

MIT 许可证

90KB
2.5K SLoC

Crates.io CI codecov

一个使用 nom 实现的 Rust crate,用于解析 Stomp 帧。


lib.rs:

stomp_parser 实现了一个 STOMP 帧的模型,如 STOMP 协议规范,版本 1.2 中所述。这些帧可以从字节数组解析并序列化。

对库用户来说,主要感兴趣的类型是枚举 client::ClientFrameserver::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