0.35.0
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
UpgradeToV3VersionUpgradePolicyvariant - Consolidated DBN decoding logic in a new sans-I/O style state machine. All existing
decoders now useDbnFsminternally - Added an internal buffer to DBN decoders so wrapping the reader in a
BufReaderis no
longer recommended - Added
with_upgrade_policy()construction methods toMetadataDecoderand
AsyncMetadataDecoderto match other decoders - Implemented conversion from
RecordReftoIoSlicefor use with
Write::write_vectored - Improved performance of the Python
DBNDecoderby batching acquisition of the GIL for
multiple records - Added
version()setter toCsvEncoderBuilderto configure the output version - Upgraded
pyo3version to 0.25.0
Breaking changes
- Release of DBN version 3
- Definition schema:
- Updated
InstrumentDefMsgwith newleg_fields to support multi-leg strategy
definitions. - Expanded
assetto 11 bytes andASSET_CSTR_LENto match - Expanded
raw_instrument_idto 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_typefields which will be normalized in the statistics schema - Removed
md_security_trading_statusbetter served by the status schema
- Updated
- Statistics schema:
- Updated
StatMsghas an expanded 64-bitquantityfield. Like other 64-bit
integer fields, its value will now be quoted in JSON - The previous
StatMsghas been moved tov2::StatMsgorStatMsgV2
- Updated
- Changed the default
VersionUpgradePolicytoUpgradeToV3 - 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
Fromtrait
- Definition schema:
- Added a
versionparameter to theencode_header_for_schema()method onCsvEncoder
andDynEncoderto handle change in definition schema fields between versions - Changed the return type of
DbnDecoder::from_fileandAsyncDbnDecoder::from_fileto
no longer include aBufReader - The
set_upgrade_policy()methods onDbnDecoder,AsyncDbnDecoder,
DbnRecordDecoder,AsyncDbnRecordDecodernow return aResult - Removed
compat::decode_record_ref. It's recommended to useDbnFsmor the decoders
directly - Updated the minimum supported
tokioversion to 1.38, which was released one year ago
Bug fixes
- Fixed conversion of
v1::StatMsgtov3::StatMsg - Changed default
upgrade_policyof synchronousDbnRecord - Fixed Python
Transcodernot writing CSV header whenhas_metadata=False - Removed incorrect
sequenceanddepthPython type stubs forCMBP1MsgandCBBOMsg - Fixed missing export of
Mbp1MsgandMbp10Msgfromv1,v2, andv3modules