← Back to Projects

Project

FIX Protocol Engine

Zero-copy FIX 4.4 parser. Wire-speed. LibFuzzer-hardened. Compile-time validation.

  • C++20
  • Zero-copy
  • Fuzzing

Problem

FIX is universal for trading but most parsers allocate per message. At 1M+/sec, GC becomes the bottleneck.

Solution

Zero-copy FixMessage over string_view. Compile-time TagType<Tag> resolution. LibFuzzer for malformed input.

Architecture

Session layer with sequence validation, heartbeat, resend. Checksum before parsing. Builders for NewOrderSingle, ExecutionReport.

Implementation

template<Tag T> struct TagType;
template<> struct TagType<Tag::Price>     { using type = double; };
template<> struct TagType<Tag::OrderQty>  { using type = uint64_t; };
template<> struct TagType<Tag::Symbol>    { using type = std::string_view; };
// Compiler inlines entire parse chain
auto price = msg.get<Tag::Price>();  // optional<double>, zero copy

Vision

Reference FIX implementation proving safety-critical protocols can be parsed at wire speed with zero allocations.

View on GitHub