Was hat Sie dazu bewogen, NexusFIX zu entwickeln? Warum nicht einfach QuickFIX verwenden?
QuickFIX wurde in den frühen 2000er Jahren mit C++98/03-Idiomen entworfen: virtuelle Dispatch, Heap-Allokation pro Nachricht, String-basierte Feldspeicherung. Diese Muster sind grundlegend unvereinbar mit Sub-Mikrosekunden-Latenz-Anforderungen. Wir starteten mit grundlegenden Prinzipien und nutzten C++23-Fähigkeiten, die es zur Zeit der QuickFIX-Entwicklung noch nicht gab.
An wen richtet sich NexusFIX?
Quantitative Handelsfirmen und Infrastruktur-Teams, die deterministisches FIX-Nachrichten-Processing mit Sub-Mikrosekunden-Latenz benötigen. Speziell: Firmen mit co-located Strategien, Teams, die eigene Trading-Gateways bauen, und C++-Entwickler, die moderne Performance-Techniken studieren.
Wie erreicht NexusFIX null Heap-Allokationen?
std::span<const char>-Ansichten in den Originalpuffer ersetzen std::string-Kopien. Vorindizierte Arrays ersetzen std::map. std::pmr::monotonic_buffer_resource bietet Arena-Allokation. Das Ergebnis: null malloc-Aufrufe auf dem Hot Path, verifiziert durch benutzerdefinierte Allokator-Instrumentierung.
Welche C++23-Funktionen verwendet NexusFIX?
std::expected für Fehlerbehandlung (keine Ausnahmen auf dem Hot Path), std::span für Zero-Copy-Datenansichten, Concepts für Compile-Time-Interface-Validierung, consteval für Compile-Time-Berechnung und [[likely]]/[[unlikely]]-Branch-Hinweise.
Wie funktioniert das SIMD-Parsing?
AVX2-Befehle laden 32 Bytes auf einmal und nutzen vektorisierten Vergleich, um SOH-(\\x01)-Trennzeichen parallel zu finden. Das ist ~13x schneller als Byte-für-Byte-Scanning. Die Technik ist von simdjson inspiriert, aber für FIX-Protokoll-Semantik angepasst.
Welche FIX-Versionen werden unterstützt?
FIX 4.4 wird vollständig unterstützt und ist in der Produktion am verbreitetsten. FIX 5.0 + FIXT 1.1 werden ebenfalls vollständig unterstützt mit nur 2% Overhead vs. 4.4. Der strukturelle Index ist versionsunabhängig — Feld-Scanning funktioniert identisch über FIX-Versionen hinweg.
Ist NexusFIX produktionsreif?
NexusFIX befindet sich in aktiver Entwicklung und wurde noch nicht in Produktions-Trading-Umgebungen eingesetzt. Benchmarks stammen aus kontrollierten Umgebungen mit CPU-Pinning und Cache-Aufwärmung. Production-Hardening ist ein separater Engineering-Aufwand.
Wie verhält sich NexusFIX im Vergleich zu Fix8?
Fix8 (C++11) verwendet Object-Pools und Zero-Copy-Techniken. NexusFIX unterscheidet sich durch die Nutzung von C++23-Standardbibliothek-Funktionen (PMR, std::span, std::expected) statt eigener Implementierungen und durch SIMD-beschleunigtes Parsing, das Fix8 nicht bietet.