4.5 million messages
Recorded for each transport—not a one-off trace.
The evidence-led FIX protocol engine
The shortest, most defensible path from FIX message to market.
LibHFT is an evidence-led low-latency FIX engine family across six language/runtime flavors: C++, Java Pure, Java/JNI, .NET Pure, .NET Native, and Rust Pure. Performance claims stay tied to measured workloads and stated conditions.
Public simulator access: username atrekes_demo · password demo_password.
C++, Java Pure, Java/JNI, .NET Pure, .NET Native, and Rust Pure.
Measured transport results and percentile markers stay tied to the stated benchmark setup.
The read-only Workbench makes fleet health, session state and conformance evidence inspectable locally.
In the retained September reference campaign, the C++ engine sustained a 50,000-message-per-second NewOrderSingle → ExecutionReport load with fixed client and server cores. The distribution below shows the measured behaviour of kernel TCP, TCPDirect and SocketXtreme. See the latest codec results and per-language CDFs →
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.
Recorded for each transport—not a one-off trace.
The load remains constant throughout each measurement.
Kernel TCP, TCPDirect and SocketXtreme, shown separately.
One active FIX session at a sustained 50,000 messages per second. Latency in microseconds; lower is better.
| Transport | p50 | p99 | p99.9 |
|---|---|---|---|
| Kernel TCP | 15.448 | 17.610 | 20.800 |
| TCPDirect | 4.285 | 4.412 | 4.595 |
| SocketXtreme | 5.331 | 5.995 | 7.183 |
Architecture freedom without a FIX rewrite
Choose the language and integration model that fits your team. Each flavor is built around the same core LibHFT FIX capabilities, with implementation details tailored to C++, Java Pure, Java/JNI, .NET Pure, .NET Native, or Rust Pure.
All six flavors belong to one LibHFT engine family. Choose a standalone implementation or a language API over the C++ core to match your team's architecture.
For teams that own the native execution path and want direct control of the core deployment and performance work.
For Java estates that want the FIX engine implemented in Java, without using the C++ engine through JNI.
For Java applications that need a familiar JVM-facing API while reusing the native C++ engine beneath it.
For .NET teams that want the FIX engine implemented in C#, without using the C++ engine as the provider.
For .NET applications that want a managed boundary over the hftnet / C++ provider path.
For Rust teams that want the FIX engine implemented in Rust, without using the C++ engine as the provider.
| Surface | Implementation ownership | Tracked API capability | Session protocol |
|---|---|---|---|
| C++ | Native C++ reference | 78/791 absent · 11 n/a | 27/27 |
| Java Pure | Independent Java session and codec engine | 88/902 absent | 27/27 |
| Java/JNI | Java API over the C++ engine | 88/891 absent · 1 n/a | 27/2713 inherited from engine |
| .NET Pure | Independent C# session and codec engine | 87/873 n/a | 27/27 |
| .NET Native | C# API over hftnet / C++ engine | 86/871 absent · 3 n/a | 27/2713 inherited from engine |
| Rust Pure | Independent Rust session and codec engine | 79/7911 n/a | 27/27 |
The source-derived inventory checks portable API coverage separately from protocol behavior. Review its explicit absences and n/a rows before selecting a runtime; the headline totals are not a claim that every surface is identical.
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 summary
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.
Generated FAST codecs are available in C++, Java Pure and .NET Pure. Java/JNI and .NET Native bind native stop-bit and presence-map primitives; their whole-message codecs remain managed. Real captured-frame evidence is not venue certification.
Generated SBE codecs, framing and UDP/multicast/mapped-memory paths are available across native and managed implementations. 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 venue session runners.
Instances arbitrate one durable store with an OS file lock. A standby retries with backoff; after promotion it restores sequence numbers before reconnecting. This is active/passive—not replication or hot/hot HA—and depends on a shared filesystem with working lock semantics. Scenario depth differs by provider; see the HA evidence before deployment.
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.
Start with the QuickFIX-format XML dictionaries LibHFT can load at runtime. Assess C++, QuickFIX/J and QuickFIX/n settings, resolve configuration differences, then verify session and recovery behaviour with replay and readiness checks before cutover.
Read the settings assessment and migration guideProtocol 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. Read the FIX Trading Community standards Inspect protocol coverage Inspect venue evidence Inspect HA evidence
Hardware-aware networking
“Kernel bypass” is not one feature. LibHFT separates socket interposers, vendor user-space TCP stacks, and raw NIC receive APIs—each has different runtime, build, and evidence boundaries.
Preload onload or vma to accelerate ordinary BSD sockets beneath the application—no FIX-engine socket rewrite or vendor-specific session API. This path works beneath C++, Java, and .NET flavors, including Java Pure and .NET Pure. LibHFT verifies that the requested interposer is mapped before labeling a run with that transport; a loaded library alone does not prove acceleration.
Measured caveat: VMA was loaded but showed no acceleration on the pure-Java NIO path in one test; Onload did accelerate that same path. Validate the exact runtime, driver, and host.
Solarflare TCPDirect (zf) and Mellanox VMA SocketXtreme are dedicated user-space TCP stacks, not preload modes. LibHFT provides initiator and acceptor routes in C++, Java/JNI, and .NET Native; the matching vendor SDK and build option are required. Java Pure and .NET Pure use ordinary sockets instead.
The exact integration depends on the flavor, vendor SDK, build options, and initiator/acceptor role; use the coverage matrix to verify a target deployment.
Solarflare ef_vi and Mellanox raw-packet ibverbs receive Ethernet frames directly from the NIC, bypassing the TCP/IP stack. LibHFT exposes them through one vendor-neutral receiver API for native-backed C++, Java/JNI, and .NET native applications, so packet consumers can select hardware without changing their ingest interface.
Raw-verbs latency is a lower-layer reference measurement and must not be compared as if it were a FIX order round trip.
p99 3.48–3.80 µs
p99 7.27–8.13 µs
3.80× p99 vs kernel baseline
Raw Ethernet latency; not a FIX session result
These figures are from a separate 5,000-sample-per-run networking campaign, not the sustained-throughput CDF above. TCPDirect and SocketXtreme shared a round-trip harness; percentiles vary across runs, and hardware, pinning, software versions, and topology matter. Read the transport comparison and coverage matrix Inspect the measured evidence
Operational visibility and recovery
LibHFT includes an operator-facing read-only Workbench alongside the engine. It helps inspect live health and evidence without turning the dashboard into an unreviewed control plane.
Not replicated state, cross-datacentre failover, or a guarantee for unverified network filesystems. Cross-host/shared-filesystem proof must match the deployment’s actual mount and lock behavior.
Review HA scenarios and constraintsThe Workbench does not send session controls. Remote fleets need a local collector or trusted deployment-owned proxy; it is not an arbitrary network fetcher.
Open LibHFT WorkbenchThe demonstration Workbench is read-only and its displayed coverage is scenario-specific—not a promise that every fault or metric is equally verified on every provider. Inspect the Workbench design and verification boundaries
Proof, not performance theatre
The latest qualified codec campaign compares 25 adapters across five languages, including all six LibHFT flavors. Checked numeric field work and 320 isolated mutation probes keep the work comparable; per-language CDFs show the top five engines by p50, with full ranked tables.
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 documentation, inspect the evidence, then design the deployment around your own hardware and market workflow.
Plan a LibHFT architecture session