6 releases

0.2.3 Feb 26, 2023
0.2.2 Nov 10, 2022
0.2.1 Mar 13, 2020
0.2.0 Oct 27, 2019
0.1.0 Aug 24, 2017

#1529 in Parser implementations

29 downloads per month

MIT license

46KB
1K SLoC

itchy

Build Status Crates.io Version

ITCH parser library for Rust. Implements the NASDAQ 5.0 spec which can be found here.

It is zero-allocation (thanks nom!) pretty fast, parsing around 20M messages/second on my XPS 9370.

Usage

Add this to your Cargo.toml:

[dependencies]
itchy = "0.2"

Simple usage 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.


lib.rs:

itchy - a nom-based parser for the NASDAQ ITCH protocol 5.0

It aims to sensibly handle the whole protocol. It is zero-allocation and pretty fast. It will process several million messages per second on a decent CPU.

Typical usage:

extern crate itchy;

let stream = itchy::MessageStream::from_file("/path/to/file.itch").unwrap();
for msg in stream {
    println!("{:?}", msg.unwrap())
}

The protocol specification can be found on the NASDAQ website

Dependencies

~6MB
~116K SLoC