Skip to content

0.14.0

Compare
Choose a tag to compare
@github-actions github-actions released this 15 Nov 23:40
· 177 commits to main since this release
b92d695

Release notes

Enhancements

  • This version begins the transition to DBN version 2 (DBNv2). In this version, the
    decoders support decoding both versions of DBN and the DBN encoders default to
    keeping version of the input. However, in a future version, decoders will by default
    convert DBNv1 to DBNv2 and support will be dropped for encoding DBNv1.
    • Affects SymbolMappingMsg, InstrumentDefMsg, and Metadata. All other record
      types and market data schemas are unchanged
    • Version 1 structs can be converted to version 2 structs with the From trait
  • Added symbol_cstr_len field to Metadata to indicate the length of fixed symbol
    strings
  • Added stype_in and stype_out fields to SymbolMappingMsg to provide more context
    with live symbology updates
  • Added smart wrapping to dbn CLI help output
  • Updated rtype_dispatch family of macros to check record length to handle both
    versions of records. This is temporary during the transition period
  • Added VersionUpgradePolicy enum and associated methods to the decoders to
    allow specifying how to handle decoding records from prior DBN versions
  • Added Metadata::upgrade() method to update Metadata from a prior DBN version to
    the latest version
  • Added -u/--upgrade flags to dbn CLI that when passed upgrades DBN data from
    previous versions. By default data is decoded as-is
  • Made AsyncDbnDecoder::decode_record, AsyncDbnDecoder::decode_record_ref,
    dbn::AsyncRecordDecoder::decode, and dbn::AsyncRecordDecoder::decode_ref
    cancellation safe. This makes them safe to use within a
    tokio::select!(https://docs.rs/tokio/latest/tokio/macro.select.html) statement
  • Added documention around cancellation safety for async APIs
  • Improved error messages for conversion errors
  • Added TOB flag to denote top-of-book messages
  • Added new publisher values in preparation for IFEU.IMPACT and NDEX.IMPACT datasets
  • Added new publisher values for consolidated DBEQ.BASIC and DBEQ.PLUS
  • Added MAX_RECORD_LEN constant for the length of the largest record type
  • Exposed record flag constants in databento_dbn with F_ prefix
  • Added export to Python for RType

Breaking changes

  • The old InstrumentDefMsg is now compat::InstrumentDefMsgV1
  • compat::InstrumentDefMsgV2 is now an alias for InstrumentDefMsg
  • The old SymbolMappingMsg is now compat::SymbolMappingMsgV1
  • compat::SymbolMappingMsgV2 is now an alias for SymbolMappingMsg
  • Changed SYMBOL_CSTR_LEN constant to 71. Previous value is now in
    compat::SYMBOL_CSTR_V1
  • Changed DBN_VERSION constant to 2
  • security_update_action was converted to a raw c_char to safely support adding
    variants in the future
  • Renamed _dummy in InstrumentDefMsg to _reserved
  • Removed _reserved2, _reserved3, and _reserved5 from InstrumentDefMsg
  • Removed _dummy from SymbolMappingMsg
  • Moved position of strike_price within InstrumentDefMsg but left text serialization
    order unchanged
  • Made Error non-exhaustive, meaning it can no longer be exhaustively matched against.
    This allows adding additional error variants in the future without a breaking change
  • Added upgrade_policy parameter to RecordDecoder::with_version constructor to
    control whether records of previous versions will be upgraded
  • Added upgrade_policy parameter to DynDecoder constructors to control whether
    records of previous versions will be upgraded
  • Renamed symbol_map parameter for Python Transcoder to symbol_interval_map to
    better reflect the date intervals it contains

Deprecations

  • Deprecated unused write_dbn_file function from Python interface. Please use
    Transcoder instead

Bug fixes

  • Fixed typo in Python type definition for InstrumentDefMsg.pretty_high_limit_price
  • Fixed type signature for Metadata.stype_in and Metadata.stype_out Python methods
  • Fixed incorrect version in pyproject.toml