Qu\'est-ce qui vous a motivé à construire NexusFIX ? Pourquoi ne pas simplement utiliser QuickFIX ?
QuickFIX a été conçu au début des années 2000 avec des idiomes C++98/03 : dispatch virtuel, allocation heap par message, stockage de champs basé sur des chaînes. Ces patterns sont fondamentalement incompatibles avec les exigences de latence inférieure à la microseconde. Nous sommes repartis de zéro en utilisant les capacités C++23 qui n\'existaient pas lors de la conception de QuickFIX.
Qui est le public cible de NexusFIX ?
Les sociétés de trading quantitatif et les équipes d\'infrastructure qui ont besoin d\'un traitement de messages FIX déterministe en dessous de la microseconde. Plus précisément : les sociétés exécutant des stratégies en co-location, les équipes construisant des passerelles de trading personnalisées, et les ingénieurs C++ étudiant les techniques de performance modernes.
Comment NexusFIX atteint-il zéro allocation heap ?
Les vues std::span<const char> dans le tampon d\'origine remplacent les copies std::string. Les tableaux pré-indexés remplacent std::map. std::pmr::monotonic_buffer_resource fournit une allocation d\'arène. Le résultat : zéro appel malloc sur le chemin critique, vérifié via instrumentation d\'allocateur personnalisé.
Quelles fonctionnalités C++23 NexusFIX utilise-t-il ?
std::expected pour la gestion des erreurs (pas d\'exceptions sur le chemin critique), std::span pour les vues de données zéro-copie, concepts pour la validation d\'interface à la compilation, consteval pour le calcul à la compilation, et les hints de branches [[likely]]/[[unlikely]].
Comment fonctionne le parsing SIMD ?
Les instructions AVX2 chargent 32 octets à la fois et utilisent la comparaison vectorisée pour trouver les délimiteurs SOH (\\x01) en parallèle. C\'est ~13x plus rapide que le scan octet par octet. La technique s\'inspire de simdjson mais est adaptée à la sémantique du protocole FIX.
Quelles versions FIX sont supportées ?
FIX 4.4 est entièrement supporté et est le plus courant en production. FIX 5.0 + FIXT 1.1 est également entièrement supporté avec seulement 2% de surcharge par rapport à 4.4. L\'index structurel est indépendant de la version — le scan de champs fonctionne de manière identique dans toutes les versions FIX.
NexusFIX est-il prêt pour la production ?
NexusFIX est en développement actif et n\'a pas encore été déployé dans des environnements de trading en production. Les benchmarks proviennent d\'environnements contrôlés avec épinglage CPU et réchauffement du cache. Le durcissement pour la production est un effort d\'ingénierie distinct.
Comment NexusFIX se compare-t-il à Fix8 ?
Fix8 (C++11) utilise des pools d\'objets et des techniques zéro-copie. NexusFIX se distingue en exploitant les fonctionnalités de la bibliothèque standard C++23 (PMR, std::span, std::expected) au lieu d\'implémentations personnalisées, et en ajoutant le parsing accéléré par SIMD que Fix8 n\'a pas.