Skip to content

0.3.0

Latest

Choose a tag to compare

@ledongthuc ledongthuc released this 11 Sep 14:48

What's Changed

Performance & allocations

  • Allocation-free decode in steady state — Decoder::decode no longer builds a tag index; the field-offset Vec is cleared and reused between calls.
  • Removed the tag index entirely — find/find_all are 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 per next()).
  • Message::find now 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 via Message::resolve_version().

Fixes

  • Removed the 0.2.0 u16 field-index truncation caveat (no index exists anymore).

Breaking changes

  • Message::find returns the first occurrence in wire order instead of an arbitrary duplicate.

Full Changelog: 0.2.0...0.3.0