LibHFTFlavorsRust FIX engine

Independent Rust engine

LibHFT Rust FIX engine.

The LibHFT Rust FIX engine, Rust Pure, implements session, recovery, validation, storage and transport in Rust, without using the C++ engine as its provider. It shares the family’s 27 tracked session behaviors and 17 typed message families.

Independent Rust engine27/27 session behaviors79/79 tracked API capabilitiesHP · 19–20 Sep 2026

Implementation model

Written in Rust, end to end.

Rust Pure is one of three standalone runtime-native engines in the family, alongside Java Pure and .NET Pure. It does not call into the C++ FIX engine: the generated coverage matrix records each of these categories as implemented by Rust Pure itself.

SESSION

Lifecycle and recovery

Initiator and acceptor Logon, heartbeat, TestRequest and Logout; gap detection, ResendRequest, replay, GapFill, PossDup and sequence reset.

CONNECTIVITY

TCP and TLS

Initiator and acceptor operation, TLS and mutual TLS, certificate and hostname checks, reconnect and backup endpoints.

STATE

Durable stores and audit

Message stores, persisted sequences, resend windows, fail-closed writes and exact-wire audit logging.

VALIDATION

Runtime dictionaries

Required fields, data types, enums, field order, duplicate tags, repeating groups and reject codes.

Generated binding coverage matrix reviewed on 30 September 2026: 79 of 79 tracked API capabilities (11 recorded n/a) and all 27 tracked session behaviors. Capability map for all six flavors →

Protocol scope

FIX sessions, recovery and durable state.

  • FIX versions: the bundled QuickFIX-format dictionaries for FIX 4.0 to FIX 5.0 SP2 and FIXT 1.1 load at runtime on every LibHFT surface, Rust Pure included. FIX versions supported →
  • Recovery: sequence gaps, ResendRequest, PossDup replay and GapFill are owned by Rust Pure. FIX session recovery →
  • High availability: writer-lock arbitration, standby retry, promotion and sequence restore are recorded for Rust Pure. High availability →
  • Protocol selection: use the protocol coverage guide for the supported implementation of FIX, FAST, SBE and venue-specific message tracks.

Measured results · HP, 19–20 September 2026

Rust Pure at 50,000 messages per second.

The HP open-loop reference campaign, collected on 19 September 2026 and recorded on 20 September 2026 on the HP reference host (Intel Xeon Gold 6254), ran one Rust Pure session against a sustained 50,000 NewOrderSingle → ExecutionReport requests per second. Response time runs from the intended send slot, so scheduler delay is included; each percentile is the mean of three 30-second runs.

Transportp50p99p99.9Maximum
Kernel TCP14.504 µs15.876 µs18.233 µs64.199 µs
Solarflare Onload6.491 µs6.870 µs6.961 µs19.418 µs
Mellanox VMA6.979 µs7.166 µs7.265 µs17.736 µs
Solarflare TCPDirect5.869 µs6.029 µs6.088 µs12.072 µs
Mellanox SocketXtreme6.905 µs7.575 µs8.731 µs19.533 µs

Evidence: Rust FIX engine benchmarks · how the campaign was measured · results table (TSV). Rust Pure was not part of the 29 September 2026 SCAN capacity sweep; a matched sweep is pending, so no sustained-rate ceiling is published for it. Capacity brackets →

Codec work is measured separately in the qualified 25-adapter HP campaign of 18 October 2026, beside the other Rust codecs. Rust codec microbenchmarks → · Rust engine comparison →

Corrected Rust comparison profiles.

Earlier canonical Rust comparison profiles (Rust open / NanoFIX and TrueFix) were superseded after a clock-boundary review. Their original status cells remain historical and cannot establish a current comparison. Current publication gates →

Transport track

Hardware-aware FIX transport.

The HP campaign above measured Rust Pure over kernel TCP, Onload, VMA, TCPDirect and SocketXtreme. Select the transport for your NIC, driver and runtime, then verify the initiator and acceptor roles you need. The Rust campaign records the measured paths; the family coverage matrix describes its separately classified vendor integrations.

FIX over kernel bypass: the coverage matrix →

QuickFIX

Bring your FIX dictionaries.

Reuse your QuickFIX-format XML dictionaries when moving a FIX application to Rust. Assess the existing session settings, adapt the application to the Rust API, then verify replay and recovery before benchmarking or cutover.

Migrating from QuickFIX to LibHFT →

Selection

When Rust Pure fits.

  • Choose Rust Pure when a standalone Rust engine is the architectural requirement.
  • Confirm vendor SDK and initiator/acceptor support for the exact transport configuration you plan to deploy.
  • Benchmark the exact flavor, transport, message path and deployment hardware you will operate.