Skip to content

Releases: databento/dbn

0.36.1

17 Jun 10:52
d8693fd

Choose a tag to compare

Release notes

Bug fixes

  • Updated conversion error messages in TryFrom<RecordRef> for RecordRefEnum for
    release of DBN version 3
  • Updated TryFrom<RecordRef> for RecordRefEnum for versioning of StatMsg,
    SystemMsg, and ErrorMsg
  • Fixed conversion of BboMsg in TryFrom<RecordRef> for RecordRefEnum
  • Implemented AsyncDecodeRecordRef and AsyncDecodeRecord for AsyncDecoder and
    AsyncRecordDecoder
  • Fixed setting of ts_out property of DbnFsm based on decoded metadata. This
    was preventing ts_out from being correctly decoded in the Python DBNDecoder
  • Fixed decoding of ts_out with first records in DBNDecoder

0.36.0

10 Jun 19:09
3794bd6

Choose a tag to compare

Release notes

Enhancements

  • Added support for width, fill, and padding when formatting pretty::Ts
  • Added support for sign, precision, width, fill, and padding when formatting
    pretty::Px
  • Optimized pretty formatting of prices and timestamps

Breaking changes

  • Moved core async decoding and encoding functionality to new traits to
    match the sync interface and present a standardized interface
    • Decoding: AsyncDecodeRecordRef and AsyncDecodeRecord
    • Encoding: AsyncEncodeRecord, AsyncEncodeRecordRef, and
      AsyncEncodeRecordTextExt

Bug fixes

  • Added missing Python type stubs for several leg properties of InstrumentDefMsg

0.35.1

03 Jun 15:34
2c18f38

Choose a tag to compare

Release notes

Enhancements

  • Documented AsyncMetadataDecoder::decode, AsyncDecoder::new, and
    AsyncDecoder::with_upgrade_policy() as now being cancellation safe
  • Added DbnFsm::reset() method that resets state to facilitate reuse
  • Added DbnFsm::has_decoded_metadata() method to check the internal
    state

Bug fixes

  • Fixed behavior where encoding metadata could lower the version
  • Changed DbnFsm::data() to exclude all processed data
  • Fixed Metadata::upgrade() behavior with UpgradeToV2

0.35.0

28 May 15:37
4f96ab4

Choose a tag to compare

Release notes

This version marks the release of DBN version 3 (DBNv3), which is the new default.
Decoders support decoding all versions of DBN and the DBN encoders default to
upgrading the input to DBNv3.

Enhancements

  • Added a new UpgradeToV3 VersionUpgradePolicy variant
  • Consolidated DBN decoding logic in a new sans-I/O style state machine. All existing
    decoders now use DbnFsm internally
  • Added an internal buffer to DBN decoders so wrapping the reader in a BufReader is no
    longer recommended
  • Added with_upgrade_policy() construction methods to MetadataDecoder and
    AsyncMetadataDecoder to match other decoders
  • Implemented conversion from RecordRef to IoSlice for use with
    Write::write_vectored
  • Improved performance of the Python DBNDecoder by batching acquisition of the GIL for
    multiple records
  • Added version() setter to CsvEncoderBuilder to configure the output version
  • Upgraded pyo3 version to 0.25.0

Breaking changes

  • Release of DBN version 3
    • Definition schema:
      • Updated InstrumentDefMsg with new leg_ fields to support multi-leg strategy
        definitions.
      • Expanded asset to 11 bytes and ASSET_CSTR_LEN to match
      • Expanded raw_instrument_id to 64 bits to support more venues. Like other 64-bit
        integer fields, its value will now be quoted in JSON
      • Removed trading_reference_date, trading_reference_price, and
        settl_price_type fields which will be normalized in the statistics schema
      • Removed md_security_trading_status better served by the status schema
    • Statistics schema:
      • Updated StatMsg has an expanded 64-bit quantity field. Like other 64-bit
        integer fields, its value will now be quoted in JSON
      • The previous StatMsg has been moved to v2::StatMsg or StatMsgV2
    • Changed the default VersionUpgradePolicy to UpgradeToV3
    • Metadata will now always be encoded with a length divisible by 8 bytes for better
      alignment
    • Version 1 and 2 structs can be converted to version 3 structs with the From trait
  • Added a version parameter to the encode_header_for_schema() method on CsvEncoder
    and DynEncoder to handle change in definition schema fields between versions
  • Changed the return type of DbnDecoder::from_file and AsyncDbnDecoder::from_file to
    no longer include a BufReader
  • The set_upgrade_policy() methods on DbnDecoder, AsyncDbnDecoder,
    DbnRecordDecoder, AsyncDbnRecordDecoder now return a Result
  • Removed compat::decode_record_ref. It's recommended to use DbnFsm or the decoders
    directly
  • Updated the minimum supported tokio version to 1.38, which was released one year ago

Bug fixes

  • Fixed conversion of v1::StatMsg to v3::StatMsg
  • Changed default upgrade_policy of synchronous DbnRecord
  • Fixed Python Transcoder not writing CSV header when has_metadata=False
  • Removed incorrect sequence and depth Python type stubs for CMBP1Msg and CBBOMsg
  • Fixed missing export of Mbp1Msg and Mbp10Msg from v1, v2, and v3 modules

0.34.0

13 May 18:57
6abedc7

Choose a tag to compare

Release notes

Enhancements

  • Added a v3::StatMsg record with an expanded 64-bit quantity field
  • Added with_compression_level methods to DynWriter, AsyncDynWriter, and
    AsyncDynBufWriter
  • Added DBN_VERSION constants to each version module: v1, v2, and v3
  • Added UNDEF_STAT_QUANTITY constants to each version module
  • Added statistics compatibility trait StatRec for generalizing across different
    versions of the statistics record
  • Added AsRef<[u8]> implementations for RecordEnum and RecordRefEnum
  • Added new off-market publishers for Eurex and European Energy Exchange (EEX)

Breaking changes

  • Made Record a subtrait of AsRef<[u8]> as all records should be convertible to
    bytes

0.33.2

06 May 22:23
58f9c73

Choose a tag to compare

Release notes

Enhancements

  • Added with_compression_level methods to DynWriter, AsyncDynWriter, and
    AsyncDynBufWriter

Bug fixes

  • Fixed AsyncDynBufWriter interface

0.33.1

29 Apr 16:28
13dbdd1

Choose a tag to compare

Release notes

Enhancements

  • Added InstitutionalPrioritization variant to MatchAlgorithm

Release notes

Enhancements

  • Added InstitutionalPrioritization variant to MatchAlgorithm

0.33.0

22 Apr 18:55
b483ba3

Choose a tag to compare

Release notes

Enhancements

  • Added SystemCode and ErrorCode enums to indicate types of system and error
    messages
  • Added code() methods to SystemMsg and ErrorMsg to retrieve the enum value if
    one exists and equivalent properties in Python
  • Converting a v1::SystemMsg to a v2::SystemMsg now sets to code to the heartbeat
    value
  • Added ASSET_CSTR_LEN constants for the size of asset field in InstrumentDefMsg
    in different DBN versions
  • Added encode_record_with_sym() method to AsyncJsonEncoder which encodes a record
    along with its text symbol to match the sync encoder

Breaking changes

  • Added code parameter to SystemCode::new() and ErrorMsg::new()
  • Updated the rtype_dispatch and schema_dispatch macro invocations to look more like
    function invocation
  • Increased the size of asset field in v3::InstrumentDefMsg from 7 to 11. The
    InstrumentDefMsgV3 message size remains 520 bytes.

0.32.0

14 Apr 17:46
1d39f44

Choose a tag to compare

Release notes

Enhancements

  • Refactored the rtype_dispatch macro to be more flexible: it supports ts_out
    dispatching, async functions and methods, and now always verifies the record length
  • Refactored the schema_dispatch macro to be more flexible: it supports ts_out
    dispatching and async functions and methods

Breaking changes

  • Updated the rtype_dispatch and schema_dispatch macro invocations to look more like
    function invocation

Deprecations

  • Deprecated macros rtype_async_dispatch, rtype_ts_out_dispatch,
    rtype_dispatch_with_ts_out, rtype_ts_out_async_dispatch,
    rtype_ts_out_method_dispatch, and rtype_ts_out_async_method_dispatch in favor of
    an updated, more flexible rtype_dispatch macro

Bug fixes

  • Fixed RType variant names in Python to match Schema
  • Added missing Python type declarations for RType variants
  • Fixed issue with Python _hidden_fields definition that caused KeyError: _reserved1_00
    with CMBP1Msg and other records with ConsolidatedBidAskPair

0.31.0

01 Apr 20:24
920c7d1

Choose a tag to compare

Release notes

Enhancements

  • Added Ord and PartialOrd implementations for all enums and FlagSet to allow
    for use in ordered containers like BTreeMap
  • Added decode_records() method to AsyncDbnDecoder and AsyncDbnRecordDecoder
    which is similar to the sync decoder methods of the same name
  • Upgraded pyo3 version to 0.24.1
  • Upgraded time version to 0.3.41

Breaking changes

  • Removed deprecated dataset module. The top-level Dataset enum and its const as_str()
    method provide the same functionality for all datasets
  • Removed deprecated SymbolIndex::get_for_rec_ref() method

Bug fixes

  • Fixed Python type annotation for SystemMsg::is_heartbeat() method that was previously
    annotated as a property