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 byironfix-engine, which owns the socket - Heartbeat handling: [
HeartbeatManager],Instant-based timing for heartbeat and TestRequest deadlines andHeartBtIntnegotiation - 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.