Repository navigation
What's Changed
Performance & allocations
- Allocation-free decode in steady state —
Decoder::decodeno longer builds a tag index; the field-offsetVecis cleared and reused between calls. - Removed the tag index entirely —
find/find_allare linear scans over wire-order offsets. Measured, building an index costs more than it saves at realistic message sizes and lookup counts.
API
- New
Message::find_all— yields every occurrence of a tag in wire order. - New
Decoder::decode_fields— lazy, allocation-free field iteration (parses one field pernext()). Message::findnow returns the first occurrence in wire order (0.2.0 returned an arbitrary duplicate due to an unstable sort).
Protocol
- FIX 5.0 (
FIXT.1.1) support — 177 new tags (957–1139) and 65 group specs, dispatched viaMessage::resolve_version().
Fixes
- Removed the 0.2.0
u16field-index truncation caveat (no index exists anymore).
Breaking changes
Message::findreturns the first occurrence in wire order instead of an arbitrary duplicate.
Full Changelog: 0.2.0...0.3.0