Skip to content

Releases: databento/databento-cpp

0.16.0

01 Mar 22:07
9fba855

Choose a tag to compare

Release notes

Enhancements

  • Added new publisher values for consolidated DBEQ.MAX
  • Added constructor to WithTsOut that updates length to the correct value to account
    for the extra 8 bytes
  • Upgrade default cpp-httplib version to 0.14.3 (last to still support OpenSSL 1.1)
  • Upgrade default nlohmann_json version to 3.11.3

Breaking changes

  • Changed default upgrade_policy to Upgrade so by default the primary record types
    can always be used
  • Renamed dummy field in ImbalanceMsg and StatMsg to reserved

Bug fixes

  • Fixed handling of ts_out when decoding DBNv1 and upgrading to version 2
  • Fixed missing logic to upgrade ErrorMsgV1 and SystemMsgV1 when decoding DBN with
    VersionUpgradePolicy::Upgrade
  • Added missing StatType::Vwap variant used in the ICE datasets
  • Added missing ToString and operator<< handling for StatType::ClosePrice and
    StatType::NetChange
  • Fixed potential for invalid reads when decoding C strings in DbnDecoder

0.15.0

16 Jan 16:09
065bcb6

Choose a tag to compare

Release notes

Breaking changes

  • Increased size of SystemMsg and ErrorMsg to provide better messages from Live
    gateway
    • Increased length of err and msg fields for more detailed messages
    • Added is_last field to ErrorMsg to indicate the last error in a chain
    • Added code field to SystemMsg and ErrorMsg, although currently unused
    • Added new is_last parameter to ErrorMsg::new
    • Decoding these is backwards-compatible and records with longer messages won't be
      sent during the DBN version 2 migration period
    • Renamed previous records to ErrorMsgV1 and SystemMsgV1

0.14.1

18 Dec 22:41
b519265

Choose a tag to compare

Release notes

Enhancements

  • Added PitSymbolMap helper for keeping track of symbology mappings in Live
  • Added new publisher value for OPRA MIAX Sapphire

Bug fixes

  • Fixed misaligned read undefined behavior when decoding records

0.14.0

23 Nov 10:23
e2ce872

Choose a tag to compare

Release notes

This release adds support for DBN v2.

DBN v2 delivers improvements to the Metadata header symbology, new stype_in and stype_out
fields for SymbolMappingMsg, and extends the symbol field length for SymbolMappingMsg and
InstrumentDefMsg. The entire change notes are available here.
Users who wish to convert DBN v1 files to v2 can use the dbn-cli tool available in the databento-dbn crate.
On a future date, the Databento live and historical APIs will stop serving DBN v1.

This release is fully compatible with both DBN v1 and v2, and so should be seamless for most users.

Enhancements

  • Added support for DBN encoding version 2 (DBNv2), affecting SymbolMappingMsg,
    InstrumentDefMsg, and Metadata
    • Version 1 structs can be converted to version 2 structs with the ToV2() method
  • Added symbol_cstr_len field to Metadata to indicate the length of fixed symbol
    strings
  • Added stype_in and stype_out fields to SymbolMappingMsg to provide more context
    with live symbology updates
  • Added IndexTs methods to every record type which returns the primary timestamp
  • Added VersionUpgradePolicy enum to allow specifying how to handle decoding records
    from prior DBN versions
  • Added InstrumentDefMsgV2 and SymbolMappingMsgV2 type aliases
  • Added kDbnVersion constant for current DBN version
  • Added kSymbolCstrLen, kSymbolCstrLenV1, and kSymbolCstrLenV2 constants for the
    length of fixed-length symbol strings in different DBN versions
  • Added new publisher values in preparation for IFEU.IMPACT and NDEX.IMPACT datasets
  • Added new publisher values for consolidated DBEQ.BASIC and DBEQ.PLUS
  • Added kMaxRecordLen constant for the the length of the largest record type
  • Added ability to convert FlagSet to underlying representation

Breaking changes

  • The old InstrumentDefMsg is now InstrumentDefMsgV1 in compat.hpp
  • The old SymbolMappingMsg is now SymbolMappingMsgV1 in compat.hpp
  • Converted the following enums to enum classes to allow safely adding new variants:
    SecurityUpdateAction and SType
  • Renamed dummy to reserved in InstrumentDefMsg
  • Removed reserved2, reserved3, reserved4, and reserved5 from InstrumentDefMsg
  • Moved position of strike_price within InstrumentDefMsg
  • Removed deprecated SecurityUpdateAction::Invalid variant

0.13.1

23 Oct 16:52
b8553e3

Choose a tag to compare

Release notes

Enhancements

  • Added new publisher values in preparation for DBEQ.PLUS
  • Added ToIso8601 for UnixNanos for converting to human-readable ISO8601 datetime
    string
  • Added kUndefTimestamp and kUndefStatQuantity constants
  • Added flag kTob for top-of-book messages

0.13.0

21 Sep 20:45
e107d0d

Choose a tag to compare

Release notes

Enhancements

  • Added pretty_px option for BatchSubmitJob, which formats prices to the correct
    scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text
    encodings)
  • Added pretty_ts option for BatchSubmitJob, which formats timestamps as ISO 8601
    strings (available for CSV and JSON text encodings)
  • Added map_symbols option to BatchSubmitJob, which appends appends the raw symbol
    to every record (available for CSV and JSON text encodings) reducing the need to look
    at the symbology.json file
  • Added split_symbols option for BatchSubmitJob, which will split files by raw symbol
  • Added encoding option to BatchSubmitJob to allow requesting non-DBN encoded
    data through the client
  • Added map_symbols, pretty_px, and pretty_ts to BatchJob response
  • Added ARCX.PILLAR.ARCX publisher
  • Added ClosePrice and NetChange StatTypes used in the OPRA.PILLAR dataset

Breaking changes

  • Remove default_value parameter from Historical::SymbologyResolve

0.12.0

24 Aug 16:38
e62d02e

Choose a tag to compare

Release notes

Enhancements
  • Added the Publisher, Venue, and Dataset enums
  • Added Publisher getters to Record and RecordHeader to convert the
    publisher_id to its enum

0.11.0

10 Aug 17:07
d82b35b

Choose a tag to compare

Release notes

Enhancements

  • Added raw_instrument_id to definition schema
  • Added operator== and operator!= implementations for DatasetConditionDetail and
    DatasetRange

Breaking changes

  • Changed MetadataListPublishers to return a vector<PublisherDetail>
  • MetadataListFields:
    • Changed return type to vector<FieldDetail>
    • Made encoding and schema parameters required
    • Removed dataset parameter
  • MetadataListUnitPrices:
    • Changed return type to vector<UnitPricesForMode>
    • Made dataset parameter required
    • Removed mode and schema parameters

Bug fixes

  • Fixed installation of nlohmann_json when using bundled version
  • Added missing operator!= implementations for Metadata, MappingInterval, and
    SymbolMapping

0.10.0

20 Jul 22:04
fa3e700

Choose a tag to compare

Release notes

Enhancements

  • Added preliminary support for Windows
  • Added LiveThreaded::BlockForStop to make it easier to wait for one or more records
    before closing the session
  • Changed TimeseriesGetRange to request a Zstd-compressed result for more efficient
    data transfer
  • Switched BatchSubmitJob to use form data to avoid query param length limit
  • Switched SymbologyResolve to use POST request with form data to avoid query param
    length limit

Breaking changes

  • Changed size-related fields and limit parameters to use std::uint64_t for consistency
    across architectures

Bug fixes

  • Removed usage of non-portable __PRETTY_FUNCTION__

0.9.1

11 Jul 20:23
58080e0

Choose a tag to compare

Release notes

Enhancements

  • Added constants for dataset codes for Databento Equity Basic and OPRA Pillar
  • Added const char* getters to records for fixed-length char arrays
  • Added RType getter to Record

Bug fixes

  • Batch live subscriptions to avoid hitting max message length
  • Fix bug in Zstd decompression
  • Fix Historical::BatchDownload truncating file before writing each chunk