Skip to content

Releases: databento/dbn

0.19.1

16 Jul 21:22
12ca6d8
Compare
Choose a tag to compare

Release notes

Bug fixes

  • Update rtype_dispatch and schema_dispatch macros for BboMsg
  • Update RecordEnum and RecordRefEnum for BboMsg

0.19.0

09 Jul 19:48
1fef731
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added BboMsg record struct for future bbo-1m and bbo-1s schemas
  • Upgraded pyo3 version to 0.22.1
  • Upgraded json-writer to 0.4

Breaking changes

  • Added Default trait implementation for Mbp1Msg due to it no longer needing
    to support multiple rtype values. The default_for_schema function has been removed
  • Changed Bbo1sMsg and Bbo1mMsg to be aliases for BboMsg
  • Changed the default value of the side fields to Side::None
  • Reordered parameters and added defaults to Python Metadata initializer to match
    required arguments in Rust

0.18.3

02 Jul 22:03
81abfd7
Compare
Choose a tag to compare

Release notes

Bug fixes

  • Fixed issue where DBN encoders would permit symbols in the metadata that left no space
    for a null terminator
  • Updated metadata length calculation to respect symbol_cstr_len field rather than
    inferring the length from version

0.18.2

18 Jun 21:11
7eee1ee
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added new shutdown method to async encoders to more easily ensure the end
    of output is written and I/O cleaned up. Previously this required a call to
    .get_mut().shutdown().await
  • Changed AsyncDynWriter and AsyncDbnEncoder::with_zstd to use a zstd checksum like
    the sync equivalents
  • Added new publisher values for XNAS.BASIC and XNAS.NLS

Bug fixes

  • Fixed bug where DBN metadata would still be upgraded after passing AsIs to
    DbnDecoder::set_upgrade_policy and AsyncDbnDecoder::set_upgrade_policy

0.18.1

04 Jun 00:03
a4ef81e
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added new stat_type for UncrossingPrice
  • Added new publisher values for XNAS.BASIC
  • Added new off-market publisher values for IFEU.IMPACT and NDEX.IMPACT

Bug fixes

  • Fix descriptions for FINN and FINY publishers.

0.18.0

21 May 20:48
ba9951c
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added links to example usage in documentation
  • Added new predicate methods InstrumentClass::is_option, is_future, and is_spread
    to make it easier to work with multiple instrument class variants
  • Implemented DecodeRecord for DbnRecordDecoder
  • Added new_inferred, with_buffer, inferred_with_buffer, from_file, get_mut,
    and get_ref methods to AsyncDynReader for parity with the sync DynReader
  • Improved documentation enumerating errors returned by functions
  • Added new DBNError Python exception that's now the primary exception raised by
    databento_dbn
  • Improved async performance of decoding DBN files
  • Added StatMsg::ts_in_delta() method that returns a time::Duration for consistency
    with other records with a ts_in_delta field

Breaking changes

  • Changed type of flags in MboMsg, TradeMsg, Mbp1Msg, Mbp10Msg, and CbboMsg
    from u8 to a new FlagSet type with predicate methods for the various bit flags
    as well as setters. The u8 value can still be obtained by calling the raw() method.
    • Improved Debug formatting
    • Python and encodings are unaffected
  • Removed write_dbn_file function deprecated in version 0.14.0 from Python interface.
    Please use Transcoder instead
  • Switched DecodeStream from streaming_iterator crate to fallible_streaming_iterator
    to allow better notification of errors
  • Switched EncodeDbn::encode_stream from accepting an impl StreamingIterator to
    accepting an FallibleStreamingIterator to allow bubbling up of decoding errors
  • Changed default value for stype_in and stype_out in SymbolMappingMsg to
    u8::MAX to match C++ client and to reflect an unknown value. This also changes the
    value of these fields when upgrading a SymbolMappingMsgV1 to DBNv2
  • Renamed CbboMsg to CBBOMsg in Python for consistency with other schemas

Breaking changes

  • Changed text serialization of display_factor to be affected by pretty_px.
    While it's not a price, it uses the same fixed-price decimal format as other prices
  • Changed text serialization of unit_of_measure_qty in InstrumentDefMsgV1 to be
    affected by pretty_px to match behavior of InstrumentDefMsgV2

Release notes

Enhancements

  • Added links to example usage in documentation
  • Added new predicate methods InstrumentClass::is_option, is_future, and is_spread
    to make it easier to work with multiple instrument class variants
  • Implemented DecodeRecord for DbnRecordDecoder
  • Added new_inferred, with_buffer, inferred_with_buffer, from_file, get_mut,
    and get_ref methods to AsyncDynReader for parity with the sync DynReader
  • Improved documentation enumerating errors returned by functions
  • Added new DBNError Python exception that's now the primary exception raised by
    databento_dbn
  • Improved async performance of decoding DBN files
  • Added StatMsg::ts_in_delta() method that returns a time::Duration for consistency
    with other records with a ts_in_delta field

Breaking changes

  • Changed type of flags in MboMsg, TradeMsg, Mbp1Msg, Mbp10Msg, and CbboMsg
    from u8 to a new FlagSet type with predicate methods for the various bit flags
    as well as setters. The u8 value can still be obtained by calling the raw() method.
    • Improved Debug formatting
    • Python and encodings are unaffected
  • Removed write_dbn_file function deprecated in version 0.14.0 from Python interface.
    Please use Transcoder instead
  • Switched DecodeStream from streaming_iterator crate to fallible_streaming_iterator
    to allow better notification of errors
  • Switched EncodeDbn::encode_stream from accepting an impl StreamingIterator to
    accepting an FallibleStreamingIterator to allow bubbling up of decoding errors
  • Changed default value for stype_in and stype_out in SymbolMappingMsg to
    u8::MAX to match C++ client and to reflect an unknown value. This also changes the
    value of these fields when upgrading a SymbolMappingMsgV1 to DBNv2
  • Renamed CbboMsg to CBBOMsg in Python for consistency with other schemas

Breaking changes

  • Changed text serialization of display_factor to be affected by pretty_px.
    While it's not a price, it uses the same fixed-price decimal format as other prices
  • Changed text serialization of unit_of_measure_qty in InstrumentDefMsgV1 to be
    affected by pretty_px to match behavior of InstrumentDefMsgV2

0.17.1

03 Apr 22:35
04d6b91
Compare
Choose a tag to compare

Release notes

Bug fixes

  • Added missing Python type stub for StatusMsg

0.17.0

01 Apr 16:34
65b949e
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added new record type CbboMsg, new rtypes and schema types for Cbbo, Cbbo1s,
    Cbbo1m, Tcbbo, Bbo1s, and Bbo1m
  • Added Volatility and Delta StatType variants
  • Added Undefined and TimeProRata MatchAlgorithm variants
  • Exported more enums to Python:
    • Action
    • InstrumentClass
    • MatchAlgorithm
    • SecurityUpdateAction
    • Side
    • StatType
    • StatUpdateAction
    • StatusAction
    • StatusReason
    • TradingEvent
    • TriState
    • UserDefinedInstrument

Breaking changes

  • Removed Default trait implementation for Mbp1Msg due to it now having multiple
    permissible rtype values. Users should use default_for_schema instead
  • Changed the default match_algorithm for InstrumentDefMsg and InstrumentDefMsgV1
    from Fifo to Undefined
  • Made Dataset, Venue, and Publisher non-exhaustive to allow future additions
    without breaking changes
  • Renamed publishers from deprecated datasets to their respective sources (XNAS.NLS
    and XNYS.TRADES respectively)

Deprecations

  • Deprecated dataset values FINN.NLS and FINY.TRADES

Bug fixes

  • Fixed an issue where the Python MappingIntervalDict was not exported
  • Fixed Python type stubs for VersionUpgradePolicy and SType

0.16.0

01 Mar 19:34
4dd8c3c
Compare
Choose a tag to compare

Release notes

Enhancements

  • Updated StatusMsg and made it public in preparation for releasing a status schema
  • Added StatusAction, StatusReason, TradingEvent, and TriState enums for use in
    the status schema
  • Added -t and --tsv flags to DBN CLI to encode tab-separated values (TSV)
  • Added delimiter method to builders for DynEncoder and CsvEncoder to customize the
    field delimiter character, allowing DBN to be encoded as tab-separated values (TSV)
  • Document cancellation safety for AsyncRecordDecoder::decode_ref (credit: @yongqli)
  • Added new publisher values for consolidated DBEQ.MAX
  • Added C FFI conversion functions from ErrorMsgV1 to ErrorMsg and SystemMsgV1
    to SystemMsg
  • Improved documentation for side field and Side enum
  • Upgraded async-compression to 0.4.6
  • Upgraded strum to 0.26

Breaking changes

  • Changed default for VersionUpgradePolicy to Upgrade
  • Changed default upgrade_policy for DbnDecoder, AsyncDbnDecoder, and Python
    DBNDecoder to Upgrade so by default the primary record types can always be used
  • Changed fields of previously-hidden StatusMsg record type
  • Updated text serialization order of status schema to match other schemas
  • Changed text serialization unit_of_measure_qty to be affected by pretty_px. While
    it's not a price, it uses the same fixed-price decimal format as other prices
  • Made StatType and VersionUpgradePolicy non-exhaustive to allow future additions
    without breaking changes
  • Renamed _dummy field in ImbalanceMsg and StatMsg to _reserved
  • Added ts_out parameter to RecordDecoder and AsyncRecordDecoder
    with_upgrade_policy methods

Bug fixes

  • Fixed handling of ts_out when upgrading DBNv1 records to version 2
  • Added missing StatType::Vwap variant used in the ICE datasets
  • Fixed an issue with Python stub file distribution
  • Fixed missing handling of ErrorMsgV1 and SystemMsgV1 in rtype dispatch macros

0.15.1

23 Jan 18:06
2ac8824
Compare
Choose a tag to compare

Release notes

Bug fixes

  • Fixed an import error in the Python type stub file