ironfix-session 0.4.1

FIX session layer protocol implementation for IronFix
Documentation

IronFix Session

FIX session layer protocol implementation for the IronFix engine.

This crate is pure protocol logic: it performs no I/O, encodes no bytes and persists nothing. Its only IronFix dependency is ironfix-core.

This crate provides:

  • State machine: a sealed typestate session FSM (Disconnected → Connecting → LogonSent/LogonReceived → Active → Resending/LogoutPending), so illegal transitions do not compile
  • Sequence management: [SequenceManager] with checked arithmetic — exhaustion is a typed error, never a silent wrap. Gap detection ([SequenceResult::Gap]) lives here; the recovery that follows (ResendRequest, SequenceReset, gap fill) is orchestrated by ironfix-engine, which owns the socket
  • Heartbeat handling: [HeartbeatManager], Instant-based timing for heartbeat and TestRequest deadlines and HeartBtInt negotiation
  • Configuration: [SessionConfig] and its validating [config::SessionConfigBuilder]

Note that the Resending state is only the FSM marker for "a resend is in progress". The actual ResendRequest / SequenceReset / gap-fill message handling lives in ironfix-engine, because it requires the wire layer.