30,000 latency samples
10,000 closed-loop round trips across three runs—not a single lucky trace.
The evidence-led FIX engine
The shortest, most defensible path from FIX message to market.
LibHFT lets teams choose native C++, independent Java/.NET engines, or native-backed providers without surrendering the FIX contract: measured tails, protocol-correct work, and repeatable cross-engine evidence.
A single FIX-critical path across native C++, Java, .NET and a benchmarked Rust adapter.
Peer results and percentile markers stay tied to the stated cross-machine measurement contract.
The read-only Workbench makes fleet health, session state and conformance evidence inspectable locally.
Fresh native-lane result: a closed-loop NewOrderSingle → ExecutionReport round trip, with fixed client/server cores. Read the benchmark record A separate open-load contract measures a 50,000-message/s aggregate; its pacing and latency evidence are reported independently.
Performance you can interrogate
Latency is only valuable when the measurement contract is credible. LibHFT records the message path, transport, cores, samples, percentile tails and comparable work—not just a convenient headline.
10,000 closed-loop round trips across three runs—not a single lucky trace.
Than the measured NexusFIX NOS→ER p50 in the same fresh native Onload lane.
With Onload than LibHFT’s equivalent plain-TCP path on the measured contract.
Fresh cross-machine Onload NOS → ER. Same fixed-core contract; p50/p99/p99.9 in µs, lower is better.
| Engine | p50 | p99 | p99.9 | LibHFT advantage |
|---|---|---|---|---|
| LibHFT | 8.85 | 10.16 | 11.0 | Reference |
| NexusFIX | 14.61 | 15.41 | 16.28 | 1.65× |
| Fix8 | 30.4 | 31.9 | — | 3.4× |
| QuickFIX/C++ | 121.8 | 123.9 | 124.9 | 13.8× |
Architecture freedom without a FIX rewrite
Choose the implementation ownership that fits the desk: native C++, independent Java or .NET engines, or Java/.NET APIs over the C++ engine. The matrix is generated from source evidence, so the capability claim stays tied to what each surface actually implements.
| Surface | Implementation ownership | Tracked API capability | Session protocol |
|---|---|---|---|
| C++ | Native C++ reference | 73/7311 deliberate n/a | 27/27 |
| Java pure | Independent Java session and codec engine | 84/84 | 27/27 |
| Java/JNI | Java API over the C++ engine | 83/831 deliberate n/a | 27/2713 inherited from engine |
| .NET managed | Independent C# session and codec engine | 81/813 deliberate n/a | 27/27 |
| .NET native | C# API over hftnet / C++ engine | 81/813 deliberate n/a | 27/2713 inherited from engine |
Every portable C++ capability tracked by the inventory is present in Java pure, .NET managed and .NET native—so a runtime decision does not force a thinner FIX contract.
Independent managed engines and C++-backed providers are labelled separately. Inherited protocol behaviour is visible, never implied by a generic “supported” badge.
The 27-behaviour protocol ledger covers logon, heartbeat, resend, gap fill, rejects, reconnect, durable sequence state and controlled recovery—not only happy-path sends.
The capability inventory is generated and checked against source in conformance runs. “n/a” is an intentionally recorded scope decision, not a hidden gap. Inspect the binding coverage matrix
Protocol breadth, without a reinvention project
LibHFT loads QuickFIX-format XML dictionaries at runtime, so the protocol asset your counterparties already speak can move with you. Standard versions are bundled, generated-table paths stay distinct from runtime loading, and the proof is kept in the source tree.
Bundled QuickFIX-format inputs for FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 SP1, 5.0 SP2 and FIXT 1.1—runtime-loadable on every LibHFT surface.
Template-specific FAST code generation is available in C++, pure Java and managed .NET. Java/JNI and .NET native expose the underlying FAST primitives; neither is presented as a whole-message codec or venue certification.
Generated SBE codecs, framing and UDP/multicast/mapped-memory paths are available in C++, Java and .NET. The native venue lane capture-replays CME MDP 3.0 market data; CME iLink 3/FIXP and B3 Entry Point remain explicitly scoped framing or schema slices, not completed session runners.
Two instances arbitrate one durable store, the standby retries with backoff, promotion restores sequence state, and the counterparty sees continuity. These active/passive building blocks span all five runtime surfaces—never dressed up as replicated or hot/hot HA.
LibHFT’s native venue library does not stop at generic binary framing: its decoder and framing slices are replayed against independently sourced packet captures, so a self-consistent parser cannot certify itself.
Capture replay exercises actual packet structure alongside the implementation and marks the exact protocol/message boundary. That is stronger evidence than a hand-built fixture, while still remaining distinct from exchange certification.
Evidence boundary: the native venue inventory includes decoder/framing slices at protocol-specific scope. “Capture-replayed” is not a claim of a production session runner, counterparty onboarding, certification or venue support for every message in a family.
Keep protocol definitions familiar while moving the hot path, runtime ownership and latency evidence forward.
Inspect the migration assessmentProtocol coverage is generated from checked-in artefacts and conformance-checked. FAST, SBE and venue scopes are deliberately qualified above; limited capture evidence is not venue certification. Inspect the protocol breadth matrix Inspect venue evidence Inspect HA evidence
Proof, not performance theatre
LibHFT’s benchmark harness compares codec behaviour across 19 engines in five languages. Mutation tests deliberately change business fields while preserving FIX framing, so an adapter cannot look fast by silently skipping extraction.
The engineering advantage
For firms where a few microseconds, a recovery edge case or an unmeasured tail can change an outcome, LibHFT turns the FIX stack into an engineering advantage. Start with the source, inspect the evidence, then design the deployment around your own hardware and market workflow.
Plan a LibHFT architecture session