Skip to content

Releases: databento/dbn

0.10.0

07 Sep 18:52
6c72757
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added start and end getters to Metadata that return time::OffsetDateTime
  • Added symbol_map and symbol_map_for_date methods to Metadata to aid historical
    symbology mapping from the instrument IDs in records
  • Added DynReader struct for being agnostic about whether an input stream is
    zstd-compressed
  • Improved safety of RecordRef::get by adding length check
  • Added Python DBN Transcoder class for converting DBN to JSON and CSV with optional
    zstd compression
  • Added optional has_metadata parameter to Python DBNDecoder to allow
    decoding plain records by passing False. By default DBNDecoder expects a complete
    DBN stream, which begins with metadata
  • Added get_ref methods to dbn::Decoder and dbn::RecordDecoder which return a
    reference to the inner reader
  • Added UNDEF_PRICE, UNDEF_ORDER_SIZE, UNDEF_STAT_QUANTITY, and UNDEF_TIMESTAMP
    constants to databento_dbn Python package to make it easier to filter null values
  • Added Metadata::builder() function to create a new builder instance

Breaking changes

  • Split out EncodeRecordRef trait from EncodeDbn to have a boxable trait (i.e.
    Box<dyn EncodeRecordRef>) for dynamic encoding
  • Split out EncodeRecord trait from EncodeDbn
  • Split out DecodeRecordRef trait from DecodeDbn to have a boxable trait (i.e.
    Box<dyn DecodeRecordRef>) for dynamic decoding
  • Changed DynWriter from an enum to a struct with only private fields

Bug fixes

  • Fixed typo in BATY.PITCH.BATY publisher
  • Fixed typo in README.md (credit: @thomas-k-cameron)

0.9.0

24 Aug 20:27
595c906
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added publisher method to RecordHeader and all record types for converting
    the publisher_id to an enum
  • Added getters that return time::OffsetDateTime for the following fields:
    ts_event, ts_recv, ts_ref, activation, expiration, start_ts, end_ts,
    ts_out
  • Added getters for ts_in_delta that return time::Duration

0.8.3

15 Aug 20:19
3427489
Compare
Choose a tag to compare

Release notes

Bug fixes

  • Fixed missing raw_instrument_id field in Python InstrumentDefMsg
  • Fixed missing OHLCV_EOD variant in Python Schema type hint

0.8.2

10 Aug 17:31
d95e461
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added new OhlcvEod schema variant for future use with OHLCV bars based around the
    end of the trading session
  • Implemented std::fmt::Display for publisher enums (Publisher, Dataset, and
    Venue)

Bug fixes

  • Fixed Python type hint for Encoding.variants()

0.8.1

02 Aug 14:46
dfcc5b1
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added new OHLCV_EOD rtype for future daily OHLCV schema based on the trading
    session
  • Added new SType::Nasdaq and SType::Cms to support querying US equities datasets
    using either convention, regardless of the original convention of the dataset.
  • Relaxed pyo3, tokio, and zstd dependency version requirements

Bug fixes

  • Fixed multi-frame Zstd decoding for async decoders

0.8.0

19 Jul 23:01
0134a0f
Compare
Choose a tag to compare

Release notes

Enhancements

  • Switched from anyhow::Error to custom dbn::Error for all public fallible functions
    and methods. This should make it easier to disambiguate between error types.
  • EncodeDbn::encode_record and EncodeDbn::record_record_ref no longer treat a
    BrokenPipe error differently
  • Added AsyncDbnDecoder
  • Added pretty::Px and pretty::Ts newtypes to expose price and timestamp formatting
    logic outside of CSV and JSON encoding
  • Added interning for Python strings
  • Added rtype to encoded JSON and CSV to aid differeniating between different record types.
    This is particularly important when working with live data.
  • Added pretty_ Python attributes for DBN price fields
  • Added pretty_ Python attributes for DBN UTC timestamp fields

Breaking changes

  • All fallible operations now return a dbn::Error instead of an anyhow::Error
  • Updated serialization order to serialize ts_recv and ts_event first
  • Moved header fields (rtype, publisher_id, instrument_id, and ts_event) to
    nested object under the key hd in JSON encoding to match structure definitions
  • Changed JSON encoding of all 64-bit integers to strings to avoid loss of precision
  • Updated MboMsg serialization order to serialize action, side, and channel_id
    earlier given their importance
  • Updated Mbp1Msg, Mbp10Msg, and TradeMsg serialization order to serialize
    action, side, and depth earlier given their importance
  • Updated InstrumentDefMsg serialization order to serialize raw_symbol,
    security_update_action, and instrument_class earlier given their importance
  • Removed bool return value from EncodeDbn::encode_record and
    EncodeDbn::record_record_ref. These now return dbn::Result<()>.

Bug fixes

  • Fixed handling of NUL byte when encoding DBN to CSV and JSON
  • Fixed handling of broken pipe in dbn CLI tool

0.7.1

26 Jun 23:36
ff72b89
Compare
Choose a tag to compare

Release notes

  • Added Python variants method to return an iterator over the enum variants for
    Compression, Encoding, Schema, and SType
  • Improved Python enum conversions for Compression, Encoding, Schema, and SType

0.7.0

20 Jun 17:30
968b7d7
Compare
Choose a tag to compare

Release notes

  • Added publishers enums
  • Added export to Python for Compression, Encoding, SType, and Schema
    enums
  • Added async JSON encoder
  • Fixed pretty timestamp formatting to match API
  • Improved Python string representation of ErrorMsg and SystemMsg
  • Dropped support for Python 3.7

0.6.1

02 Jun 18:54
aca7385
Compare
Choose a tag to compare
v0.6.1

Released version 0.6.1

0.6.0

26 May 19:55
2a3b744
Compare
Choose a tag to compare
v0.6.0

Released version 0.6.0