|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 0.35.0 - 2025-05-28 |
| 4 | +This version marks the release of DBN version 3 (DBNv3), which is the new default. |
| 5 | +Decoders support decoding all versions of DBN and the DBN encoders default to |
| 6 | +upgrading the input to DBNv3. |
| 7 | + |
| 8 | +### Enhancements |
| 9 | +- Added a new `UpgradeToV3` `VersionUpgradePolicy` variant |
| 10 | +- Consolidated DBN decoding logic in a new sans-I/O style state machine. All existing |
| 11 | + decoders now use `DbnFsm` internally |
| 12 | +- Added an internal buffer to DBN decoders so wrapping the reader in a `BufReader` is no |
| 13 | + longer recommended |
| 14 | +- Added `with_upgrade_policy()` construction methods to `MetadataDecoder` and |
| 15 | + `AsyncMetadataDecoder` to match other decoders |
| 16 | +- Implemented conversion from `RecordRef` to `IoSlice` for use with |
| 17 | + `Write::write_vectored` |
| 18 | +- Improved performance of the Python `DBNDecoder` by batching acquisition of the GIL for |
| 19 | + multiple records |
| 20 | +- Added `version()` setter to `CsvEncoderBuilder` to configure the output version |
| 21 | +- Upgraded `pyo3` version to 0.25.0 |
| 22 | + |
| 23 | +### Breaking changes |
| 24 | +- Release of DBN version 3 |
| 25 | + - Definition schema: |
| 26 | + - Updated `InstrumentDefMsg` with new `leg_` fields to support multi-leg strategy |
| 27 | + definitions. |
| 28 | + - Expanded `asset` to 11 bytes and `ASSET_CSTR_LEN` to match |
| 29 | + - Expanded `raw_instrument_id` to 64 bits to support more venues. Like other 64-bit |
| 30 | + integer fields, its value will now be quoted in JSON |
| 31 | + - Removed `trading_reference_date`, `trading_reference_price`, and |
| 32 | + `settl_price_type` fields which will be normalized in the statistics schema |
| 33 | + - Removed `md_security_trading_status` better served by the status schema |
| 34 | + - Statistics schema: |
| 35 | + - Updated `StatMsg` has an expanded 64-bit `quantity` field. Like other 64-bit |
| 36 | + integer fields, its value will now be quoted in JSON |
| 37 | + - The previous `StatMsg` has been moved to `v2::StatMsg` or `StatMsgV2` |
| 38 | + - Changed the default `VersionUpgradePolicy` to `UpgradeToV3` |
| 39 | + - Metadata will now always be encoded with a length divisible by 8 bytes for better |
| 40 | + alignment |
| 41 | + - Version 1 and 2 structs can be converted to version 3 structs with the `From` trait |
| 42 | +- Added a `version` parameter to the `encode_header_for_schema()` method on `CsvEncoder` |
| 43 | + and `DynEncoder` to handle change in definition schema fields between versions |
| 44 | +- Changed the return type of `DbnDecoder::from_file` and `AsyncDbnDecoder::from_file` to |
| 45 | + no longer include a `BufReader` |
| 46 | +- The `set_upgrade_policy()` methods on `DbnDecoder`, `AsyncDbnDecoder`, |
| 47 | + `DbnRecordDecoder`, `AsyncDbnRecordDecoder` now return a `Result` |
| 48 | +- Removed `compat::decode_record_ref`. It's recommended to use `DbnFsm` or the decoders |
| 49 | + directly |
| 50 | +- Updated the minimum supported `tokio` version to 1.38, which was released one year ago |
| 51 | + |
| 52 | +### Bug fixes |
| 53 | +- Fixed conversion of `v1::StatMsg` to `v3::StatMsg` |
| 54 | +- Changed default `upgrade_policy` of synchronous `DbnRecord` |
| 55 | +- Fixed Python `Transcoder` not writing CSV header when `has_metadata=False` |
| 56 | +- Removed incorrect `sequence` and `depth` Python type stubs for `CMBP1Msg` and `CBBOMsg` |
| 57 | +- Fixed missing export of `Mbp1Msg` and `Mbp10Msg` from `v1`, `v2`, and `v3` modules |
| 58 | + |
3 | 59 | ## 0.34.0 - 2025-05-13 |
4 | 60 |
|
5 | 61 | ### Enhancements |
|
0 commit comments