8 releases (4 breaking)

0.6.0 Jun 25, 2023
0.5.0 Jul 10, 2021
0.4.1 Jun 25, 2021
0.3.3 Jun 6, 2021
0.2.0 May 22, 2021

#1531 in Parser implementations


Used in 2 crates

MIT license

90KB
2.5K SLoC

Crates.io CI codecov

A Rust crate for parsing Stomp frames, implemented using nom.


lib.rs:

stomp_parser implements a model for STOMP Frames, as specified in the STOMP Protocol Specification,Version 1.2. These frames can be parsed from and serialized to byte arrays.

The types primarily of interest to users of the library are the enums client::ClientFrame and server::ServerFrame, which model the frames that can be sent by STOMP clients and STOMP servers respectively. Obtaining a frame from a message is achieved via try_from on those types.

Example

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");
}

Dependencies

~1MB
~18K SLoC