Project
FIX Protocol Engine
Zero-copy FIX 4.4 parser. Wire-speed. LibFuzzer-hardened. Compile-time validation.
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 copyVision
Reference FIX implementation proving safety-critical protocols can be parsed at wire speed with zero allocations.