Skip to content

Releases: databento/databento-cpp

0.19.0

04 Jun 16:49
4b51f62
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added configurable heartbeat_interval parameter for live clients that determines the
    timeout before heartbeat SystemMsg records will be sent. It can be configured via
    the SetHeartbeatInterval method of the LiveBuilder
  • Added SetAddress method to LiveBuilder for configuring a custom gateway address
    without using the constructor directly
  • Added new UncrossingPrice StatType variant
  • Added new publisher values for XNAS.BASIC
  • Added SetDataset(Dataset) overload to LiveBuilder
  • Added new off-market publisher values for IFEU.IMPACT and NDEX.IMPACT

Breaking changes

  • Added heartbeat_interval parameter to the Live constructors
  • Removed start_date and end_date fields from DatasetRange struct
    in favor of start and end
  • Removed live Subscribe method overloads with use_snapshot
    parameter in favor of separate SubscribeWithSnapshot method

Bug fixes

  • Fixed overloading of live Subscribe methods
  • Fixed live subscribing with default-constructed UnixNanos
  • Fixed descriptions for FINN and FINY publishers.

0.18.1

21 May 23:18
6ced9b0
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added live Subscribe function overload with use_snapshot parameter
  • Added GetIf method to Record that allows if chaining for handling multiple
    record types
  • Added record type checking to Record::Get method to catch programming errors
    and prevent reading invalid data

Bug fixes

  • Added missing symbol chunking for live Subscribe overloads with const std::string&
    start parameter

0.18.0

15 May 01:26
ce8eb73
Compare
Choose a tag to compare

Release notes

Breaking changes

  • Changed FlagSet to be more class-like:
    • Added predicate methods and setters for each bit flag
    • Improved string formatting
    • Removed bitwise operators. Bitwise operations can be performed by first casting to a
      std::uint8_t or calling the Raw() method
  • Changed format of display_factor and price_ratio to a fixed-precision decimal for
    InstrumentDefMsg and InstrumentDefMsgV1 to match existing values and DBN crate
  • Changed format of unit_of_measure_qty to a fixed-precision decimal for
    InstrumentDefMsgV1 to match InstrumentDefMsg

0.17.1

08 Apr 14:43
a56e606
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added support for Conan-installed zstd (credit: @Hailios)

Bug fixes

  • Added missing copying of ts_event when upgrading structs from DBNv1 to DBNv2
  • Fixed setting of compiler warnings and warnings that had accumulated

0.17.0

01 Apr 16:36
d6669f6
Compare
Choose a tag to compare

Release notes

Enhancements

  • Added StatusMsg record, and StatusAction, StatusReason, TradingEvent, and
    TriState enums
  • Added CbboMsg record and corresponding ConsolidatedBidAskPair structure
  • Added new enum values for Schema and RType corresponding to new schemas
    cbbo, cbbo-1s, cbbo-1m, tcbbo, bbo-1s, bbo-1m
  • Added Volatility and Delta StatType variants
  • Added Undefined and TimeProRata MatchAlgorithm variants
  • Changed format of unit_of_measure_qty to a fixed-precision decimal
  • Added logic to skip find_package call if nlohmann_json and httplib targets
    already exist (credit: @akovachev)
  • Added specific instructions for installing dependencies on Ubuntu and macOS (credit: @camrongodbout)

Breaking changes

  • Renamed publishers from deprecated datasets to their respective sources (XNAS.NLS
    and XNYS.TRADES respectively)

Deprecations

  • Deprecated dataset values FINN.NLS and FINY.TRADES

Bug fixes

  • Fixed out-of-order initialization in DbnDecoder (credit: @Hailios)
  • Renamed MatchAlgorithm::EurodollarOptions to MatchAlgorithm::EurodollarFutures

0.16.0

01 Mar 22:07
9fba855
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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