Skip to content

0.8.0

Compare
Choose a tag to compare
@github-actions github-actions released this 19 Jul 23:01
· 320 commits to main since this release
0134a0f

Release notes

Enhancements

  • Switched from anyhow::Error to custom dbn::Error for all public fallible functions
    and methods. This should make it easier to disambiguate between error types.
  • EncodeDbn::encode_record and EncodeDbn::record_record_ref no longer treat a
    BrokenPipe error differently
  • Added AsyncDbnDecoder
  • Added pretty::Px and pretty::Ts newtypes to expose price and timestamp formatting
    logic outside of CSV and JSON encoding
  • Added interning for Python strings
  • Added rtype to encoded JSON and CSV to aid differeniating between different record types.
    This is particularly important when working with live data.
  • Added pretty_ Python attributes for DBN price fields
  • Added pretty_ Python attributes for DBN UTC timestamp fields

Breaking changes

  • All fallible operations now return a dbn::Error instead of an anyhow::Error
  • Updated serialization order to serialize ts_recv and ts_event first
  • Moved header fields (rtype, publisher_id, instrument_id, and ts_event) to
    nested object under the key hd in JSON encoding to match structure definitions
  • Changed JSON encoding of all 64-bit integers to strings to avoid loss of precision
  • Updated MboMsg serialization order to serialize action, side, and channel_id
    earlier given their importance
  • Updated Mbp1Msg, Mbp10Msg, and TradeMsg serialization order to serialize
    action, side, and depth earlier given their importance
  • Updated InstrumentDefMsg serialization order to serialize raw_symbol,
    security_update_action, and instrument_class earlier given their importance
  • Removed bool return value from EncodeDbn::encode_record and
    EncodeDbn::record_record_ref. These now return dbn::Result<()>.

Bug fixes

  • Fixed handling of NUL byte when encoding DBN to CSV and JSON
  • Fixed handling of broken pipe in dbn CLI tool