11 releases

new 0.3.4 Jan 7, 2025
0.3.3 Dec 18, 2024
0.3.2 Oct 31, 2024
0.2.3 Feb 26, 2023
0.1.1 Sep 18, 2017

#1353 in Parser implementations

Download history 8/week @ 2024-09-29 314/week @ 2024-10-13 16/week @ 2024-10-20 116/week @ 2024-10-27 24/week @ 2024-11-03 22/week @ 2024-11-10 73/week @ 2024-11-17 6/week @ 2024-11-24 51/week @ 2024-12-08 145/week @ 2024-12-15 24/week @ 2024-12-22 4/week @ 2024-12-29 129/week @ 2025-01-05

303 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.6MB
~52K SLoC