9 releases

0.3.2 Oct 31, 2024
0.3.1 Oct 15, 2024
0.2.3 Feb 26, 2023
0.2.2 Nov 10, 2022
0.1.0 Aug 24, 2017

#1177 in Parser implementations

Download history 6/week @ 2024-09-27 2/week @ 2024-10-04 287/week @ 2024-10-11 43/week @ 2024-10-18 71/week @ 2024-10-25 53/week @ 2024-11-01

454 downloads per month

MIT license

48KB
1.5K 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!) and pretty fast, parsing around 20M messages/second on my not-fast laptop.

Usage

Add this to your Cargo.toml:

[dependencies]
itchy = "0.3"

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

~1.8–2.7MB
~53K SLoC