LibHFTDocumentationLanguage flavors

Choosing a FIX engine runtime

Six LibHFT flavors compared.

Choosing a FIX engine runtime is a deployment decision: pick an independent engine or a managed API over the C++ core without losing sight of where session behavior and transport ownership live.

6 surfaces27/27 session behaviors17/17 typed messages

Implementation ownership

The language boundary is a deployment decision.

Capability map

What is tracked across all six flavors.

The coverage ledger checks concrete engine functionality, not only whether an API symbol exists. This summary groups the detailed checks into the categories an engineering team evaluates when choosing and operating a FIX engine.

Capability categoryFunctionality trackedC++Java PureJava/JNI.NET Pure.NET NativeRust
Typed FIX APIsOrder entry, cancel/replace, execution reports, quotes, market data, rejects and typed projectionsIncludedIncludedIncludedIncludedIncludedIncluded
Session lifecycleInitiator and acceptor Logon, heartbeat, TestRequest, Logout, schedules, credentials and reset policiesOwnedOwnedC++ coreOwnedC++ coreOwned
Sequence recoveryGap detection, ResendRequest, replay, GapFill, PossDup, sequence reset and desynchronisation handlingOwnedOwnedC++ coreOwnedC++ coreOwned
ValidationRuntime dictionaries, required fields, data types, enums, field order, duplicate tags, repeating groups and reject codesIncludedIncludedIncludedIncludedIncludedIncluded
Connectivity and securityTCP initiator/acceptor operation, TLS, mutual TLS, certificate and hostname checks, reconnect and backup endpointsOwnedOwnedC++ coreOwnedC++ coreOwned
Durable state and auditMessage stores, persisted sequences, resend windows, fail-closed writes and exact-wire audit loggingOwnedOwnedC++ coreOwnedC++ coreOwned
High availabilityPrimary-store arbitration, standby retry, promotion and sequence restoration after takeoverIncludedIncludedIncludedIncludedIncludedIncluded
Observability and controlSession metrics, Prometheus/JSON export, low-latency counter gating and audited operational controlsTrackedTrackedTrackedTrackedTrackedTracked
Latency engineeringOwner-thread pinning, send batching, raw sample export, latency stamps and optional hot-counter removalIncludedIncludedIncludedIncludedIncludedIncluded
Resilience evidenceFuzzing, soak tests, reconnect churn, store-failure paths and multi-session pressureTrackedTrackedTrackedTrackedTrackedTracked
How to read the matrix.

Owned means the flavor implements the engine behavior itself. C++ core means the Java/JNI or .NET Native API deliberately delegates that behavior to the native engine. Included and Tracked mean the category is covered by the source-derived inventory; they do not turn every optional provider path into a certification claim.

Category summary derived from the generated binding coverage matrix reviewed on 30 September 2026. The complete capability-by-capability ledger is available on request from contact@atrekes.com.

Shared behavior

What the parity ledger actually tracks.

All six flavors expose typed support for 17 common application and reject message families and the 27 tracked session behaviors. The session ledger covers lifecycle and failure-path behavior such as Logon, heartbeat, sequence gaps, resend, gap fill, reject handling, reconnect and durable state—not just message encoding.

Parity does not mean identical internals.

Independent engines can diverge in implementation and performance. Native-backed providers intentionally reuse the C++ state machine. The public matrix records those differences instead of collapsing them behind one language label.

Selection guide

Choose by operational ownership, not syntax alone.

  • Choose C++ when the application owns the native path and vendor SDK integration directly.
  • Choose Java Pure, .NET Pure or Rust Pure when a standalone runtime-native engine is the architectural requirement.
  • Choose Java/JNI or .NET Native when the managed application should reuse the C++ engine and its native transport integrations.
  • Benchmark the exact flavor, transport, message path and deployment hardware you will operate.