Skip to content

Releases: databento/dbn

0.70.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 17:07

Release notes

Enhancements

  • Added DbnDecoder_process_many to the C API for decoding a batch of records in a
    single call, which is significantly faster than calling DbnDecoder_process for each
    record
  • Added DbnDecoder_take_metadata to the C API for taking ownership of the metadata
    after a Metadata result
  • Sped up decode_ref() and decode_record_ref() on the sync and async record
    decoders, which now decode records in batches
  • Added DbnFsm::process_batch() for decoding a batch of records in a single call,
    along with has_buffered_record() and next_buffered_record() for draining the
    batch
  • Added new venue, dataset, and publishers for Databento Core Indices
  • Upgraded async-compression to 0.4.44

Breaking changes

  • Replaced Record::header() with a method per header field: raw_rtype(),
    publisher_id(), instrument_id(), and raw_ts_event(), joining the existing
    record_size(), rtype(), and publisher(). RecordRef, RecordRefMut,
    RecordBuf, RecordEnum, and RecordRefEnum keep a header() method of their own,
    and concrete record types keep their hd field
  • Record::raw_rtype() returns u16 and Record::instrument_id() returns u64, wider
    than the corresponding RecordHeader fields, which are unchanged
  • RType::try_into_schema() takes a u16 and returns None for values outside the
    range of the RecordHeader rtype field
  • Removed the read_more and metadata out parameters from DbnDecoder_process. Call
    DbnDecoder_take_metadata after a Metadata result

Bug fixes

  • Fixed DbnFsm::process_all() and DbnFsm::process_many() returning Record with no
    records instead of ReadMore when the buffer held no complete record
  • Fixed unsound RecordRefMut accessors, which returned references outliving the borrow
    of self and let safe code hold two mutable references to the same record, or a
    shared reference aliasing a mutable one. get_mut() and get_mut_unchecked() now
    take &mut self, and header() returns a reference borrowing self
  • Fixed undefined behavior when mutating a record through a RecordRefMut, where the
    write went through a pointer that permitted only reads, or that did not span the
    whole record
  • Fixed DbnFsm::process_all() and DbnFsm::process_many() discarding the records
    decoded before an invalid record. They now return those records and the error on the
    following call, matching DbnFsm::process()

0.69.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 15:54

Release notes

Enhancements

  • Added UnsubscribeAck to the SystemCode enum for acknowledging unsubscribe requests

Bug fixes

  • Fixed unsound AsRef<[u8]> for RecordBuf, which produced a slice longer than the
    buffer when the header length written through raw_buf_mut() exceeded the capacity
  • Fixed incorrect count in DBN metadata causing decoding to read into the start of
    records

0.68.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 19:18

Release notes

Enhancements

  • Added MetadataEncoder::encoded_len() for the number of bytes encode() will write
  • Added DbnMetadata_encode and DbnMetadata_encoded_size to the C API for encoding
    metadata, including symbols, symbol mappings, and every symbology field
  • Added SType to the generated C header
  • Improved documentation for the min_price_increment_amount and inst_attrib_value
    fields

Breaking changes

  • Removed encode_metadata from the C API. Use DbnMetadata_encode, which takes a
    DbnMetadataRef describing the full metadata rather than only the dataset, schema,
    and start

0.67.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 15:32

Release notes

Enhancements

  • Added LISTING_ID, ISSUER_ID, and SECURITY_ID variants to SType, for use
    with the reference data API
  • Added DbnDecoder_reset to the C API for decoding another stream with the same
    decoder

Breaking changes

  • Updated the minimum supported tokio version to 1.47, which was released one year ago

0.66.0

Choose a tag to compare

@github-actions github-actions released this 11 Aug 21:25

Release notes

Enhancements

  • Improved performance of record field accessors that convert a raw value to an enum, such
    as side(), action() and rtype(), by no longer copying the description when
    constructing the conversion error
  • Improved performance of Record::raw_index_ts() for records with an unrecognized rtype
  • Relaxed the bound on From<&R> for RecordRef from R: HasRType to R: Record, so a
    RecordRef can be constructed from any record type, including RecordRef itself
  • Upgraded pyo3 to 0.29.2

0.65.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 20:11

Release notes

Enhancements

  • Added ReplayDataAgedOut variant to ErrorCode for when the data for a replay
    subscription is no longer retained and the schema is incompatible with skipping records
  • Added new publisher values for JPX
  • Added a zstd feature, enabled by default, gating Zstandard compression and
    decompression, the DBZ format, and the Dyn readers, writers, decoders, and
    encoders
  • Improved FFI library
    • The static library no longer bundles Zstandard
    • Added a DBN_C_HEADER_DIR environment variable to control where the generated
      dbn.h is written
    • Added native-static-libs.txt to the C static library release archives, recording
      the linker arguments the static library requires
    • Added a shared library to the libdbn_c release archives
  • Upgraded time to 0.3.55
  • Upgraded pyo3 to 0.29.1

Bug fixes

  • Fixed DbnMetadata_end in the C API returning 0 for an unset query end instead of
    UNDEF_TIMESTAMP, the value it's encoded with on the wire

0.64.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 15:23

Release notes

Enhancements

  • Added a push-based decoder to the C API, where the caller owns the read loop
    and any decompression, feeding bytes in and draining decoded metadata and
    records out
  • Added a finish() method to DynWriter to flush data and finalize the
    output stream. For compressed data this will write the zstandard end-of-frame
    block
  • Added finish() method to the Python Transcoder and a context manager
    to call this method on exit. This will ensure compressed output contains the
    end-of-frame block
  • Upgraded time to 0.3.54

Breaking changes

  • Replaced the file-descriptor-based DbnDecoder_* C API with the new
    push-based decoder; DbnDecoder_create now takes a DbnDecoderOptions and
    reports errors through a DbnDecoderError out parameter

Bug fixes

  • Fixed AsRef<[u8]> for concrete record types encoding only
    size_of::<Self>() bytes instead of the full record_size() from the header
    length, which dropped appended ts_out bytes and corrupted output when
    re-encoding a typed record decoded from a stream with ts_out

0.63.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 16:44

Release notes

Enhancements

  • Added an integer representation for VersionUpgradePolicy: the enum is now
    repr(u8) with discriminants starting at 1, derives TryFromPrimitive and
    IntoPrimitive, and in Python gained a value property, a from_int
    constructor, integer construction, and comparison against integers

0.62.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 15:00

Release notes

Enhancements

  • Added new publisher values for Cboe Titanium Cboe Global Indices Feed
  • Added StatType variants MwcbLevel1, MwcbLevel2, and MwcbLevel3
  • Added StatType variants AuctionCollarReferencePrice, AuctionCollarUpperPrice,
    and AuctionCollarLowerPrice
  • Upgraded time to 0.3.53

Breaking changes

  • Renamed the following Venue, Dataset, and Publisher:
    • CGIF to MAIN
    • CGIF.TITANIUM to MAIN.CGIF
    • CGIF.TITANIUM.CGIF to MAIN.CGIF.MAIN
  • Changed the default size field to 0 in MboMsg, TradeMsg, Mbp1Msg, Mbp10Msg,
    BboMsg, Cmbp1Msg, and CbboMsg

0.61.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 15:50

Release notes

Enhancements

  • Added MatchAlgorithm variant Allocation
  • Upgraded time version to 0.3.49
  • Upgraded pyo3 to 0.29.0