Tickwire
A Nasdaq market data feed handler in C++
A C++20 feed handler that reads Nasdaq ITCH over UDP, recovers dropped packets and rebuilds the order book.
- Role
- Solo project
- Category
- Systems Programming
- Status
- Complete
- Stack
- C++20, UDP, Boost.Beast, WebAssembly, Next.js, TypeScript

(01) What it is
The project
Exchanges send market data over UDP, which means packets can get lost. Tickwire decodes Nasdaq TotalView ITCH 5.0 over MoldUDP64 on real UDP sockets, notices when packets go missing, asks for them again, and rebuilds the order book without corrupting it.
To test that properly I wrote a fault proxy that drops, duplicates and reorders packets on purpose, with a seed so every failure can be replayed exactly. The trickiest case was losing the last few packets of a session, because the only clue is a sequence number in a later heartbeat.
(02) Details
How it works
- 01Decodes all 23 ITCH 5.0 message types with strict length checks
- 02After recovering from packet loss, the book and trade hashes match a run with no loss at all
- 03If a gap can't be recovered, it reports a failure instead of pretending everything is fine
- 04Replays are byte exact, and seeking to a checkpoint gives the same result as replaying from the start
- 05Decodes about 119 million messages per second on one core
- 06The same engine compiles to WebAssembly and produces identical hashes in the browser
(03) Screenshots

