Skip to content

v0.2.0

Choose a tag to compare

@joaquinbejar joaquinbejar released this 12 Jul 18:56
· 124 commits to main since this release
fb0a676

Highlights

ironfix-session — acceptor-side sessions and checked sequence counters (#1)

  • New LogonReceived typestate with the full acceptor path: Disconnected::accept() → Connecting::on_logon_received() → accept_logon() / reject_logon() / on_timeout(), so FIX servers can express their state machine with the provided typestate.
  • SequenceManager::try_allocate_sender_seq() and try_increment_target_seq() return Result<SeqNum, SequenceExhausted> instead of silently wrapping on u64 overflow. Reset semantics documented (ResetSeqNumFlag(141)=Y + reset()).
  • Session and the new types are now exported from the crate root.

ironfix-dictionary — embedded FIX 4.4, XML loader, validator (#2)

  • Dictionary::fix44(): the standard QuickFIX FIX 4.4 specification embedded at compile time, parsed once and cached (&'static Dictionary).
  • Dictionary::from_quickfix_xml(): loader for QuickFIX-format XML so venue-specific dialects can extend the base.
  • Validator: validates a decoded message against a dictionary — known message type, tags defined/allowed for the message, required header/body/trailer fields with recursive component expansion, enum values, and repeating-group count/delimiter consistency.

Breaking changes

  • ironfix-dictionary: Dictionary gains header_groups/trailer_groups and GroupDef gains components — breaking for downstream struct-literal construction (hence 0.2.0).

All 11 crates published to crates.io at 0.2.0.