ITCH parser library for Rust. Implements the NASDAQ 5.0 spec which can be found here.
It is based on nom and despite not having been optimized much, it is zero-allocation and pretty fast, benching ~7M messages/second on my laptop (Intel Core m3-6Y30).
Add this to your Cargo.toml
:
[dependencies]
itchy = "0.1"
and this to your crate root:
extern crate itchy;
Simple example:
let stream = itchy::MessageStream::from_file("/path/to/file.itch").unwrap();
for msg in stream {
println!("{:?}", msg.unwrap())
}
See the API docs for more information.