- Added
TryNextRecordandFillBuffertoLiveBlockingfor more fine-grained control around I/O - Added
TimeoutConfstruct andSetTimeoutConf()builder method for configuring connect and auth timeouts on the Live client (defaults to 10s and 30s) - Added
SessionId()andTimeouts()getters toLiveBlockingandLiveThreaded
- Added client-side heartbeat timeout detection:
NextRecordthrowsHeartbeatTimeoutErrorif no data is received forheartbeat_interval+ 5 seconds (defaults to 35 seconds) - Changed
SlowReaderBehavior::Skipto send "skip" instead of "drop" to the gateway
NextRecordnow throwsLiveApiErrorinstead ofDbnResponseErrorwhen the gateway closes the session. Code catchingDbnResponseErrorfor this case should be updated
- Added support for
progressfield inBatchJobresponse - Added blocking (pull-based)
TimeseriesGetRangeoverloads that return aDbnStorewithGetMetadata()andNextRecord()methods, unifying the consumption pattern across historical, live, and file sources - Generalized
DbnFileStoreintoDbnStorewhich accepts anyIReadablesource.DbnFileStoreis retained as a type alias for backwards compatibility - Upgraded default
httplibversion to 0.37.2
- Added logic to set
codewhen upgrading version 1ErrorMsgto newer versions
- Added
SkippedRecordsAfterSlowReadingto theErrorCodeenum for gateway errors originating from slow client catch-up
- Added
SlowReaderBehaviorenum andLiveBuilder::SetSlowReaderBehavior()to configure gateway behavior when client falls behind - Added
SlowReaderBehavior()getter toLiveBlockingandLiveThreaded
- Added conversion for missing schemas for function
RTypeFromSchema - Added explicit optional construction in
json_helpers.hpp(credit: Enrico Detoma)
- Added Zstd compression support to live clients which can be enabled with
LiveBuilder::SetCompression(). It's disabled by default - Added
Compression()getter toLiveBlockingandLiveThreaded - Upgraded default
httplibversion to 0.30.1
- Added an overload to the
ReadSomemethod onIReadablefor timeout support
- Added new publisher for Blue Ocean ATS (
OCEA_MEMOIR_OCEA)
- Added new off-market publisher for Cboe Futures Exchange (
XCBF_PITCH_XOFF) - Added new
StatTypevariants to be used byXCBF.PITCHdataset:UpperPriceLimitLowerPriceLimitBlockVolumeVenueSpecificVolume1
- Added download retry, resumption, and checksum verification to
Historical::BatchDownload - Added new venue, dataset, and publisher for Cboe Futures Exchange (
XCBF.PITCH) - Upgraded default
httplibversion to 0.28.0
- Added logic to set
codewhen upgrading version 1SystemMsgto newer versions
- Added missing
<cstddef>include toconstants.hpp(credit: @ognian-)
- Made
Unseta fully-supported variant ofSystemCodeandErrorCode
- Removed
modeparameter inHistorical::MetadataGetCost()
- Added
EndOfIntervalvariant toSystemCode
- Removed
bill_idfield fromBatchJobstruct
- Added static
Builder()methods to the clients - Improved debug logging in live clients
- Added
PUBLISHER_SPECIFICflag
- Removed unused
Receivedvariant fromJobStateenum
- Added
OhlcvEodvariant toRType - Added documentation to more enums and record structs
- Aligned string representation of
RTypewith Rust
- Switched to
std::bytefor most padding fields in record structs. These fields are now initialized by default - Hidden padding fields now begin with
_
- Added missing
IndexTs()method tov1::InstrumentDefMsg,v2::InstrumentDefMsg, andv1::SymbolMappingMsg - Fixed error in templated overload of
DbnDecoder::EncodeRecord() - Removed unused
DiskandS3variants fromDeliveryenum
- Fixed potential corrupted data in
DbnFileStore::Replay
- Renamed the following Venue, Dataset, and Publishers:
XEERtoXEEEXEER.EOBItoXEEE.EOBIXEER.EOBI.XEERtoXEEE.EOBI.XEEEXEER.EOBI.XOFFtoXEEE.EOBI.XOFF
- Fixed potential corrupted records when upgrading DBN versions in live clients
- Removed unused
Intradayvariant fromDatasetConditionenum
- Added
LogPlatformInfo()function which logs the client version, compiler, and operating system info to aid troubleshooting - Added compiler and operating system info to the user agent to aid troubleshooting
- Standardized
clientinfo sent by live clients to match historical - Added methods to the client builders to extend the user agents with a custom string
- Fixed missing implementation for
LiveBuilder::SetBufferSize() - Fixed checking of warnings from server in Historical API in
TimeseriesGetRange()andTimeseriesGetRangeToFile()
- Added
range_by_schemafield toDatasetRangestruct - Changed historical
TimeseriesGetRange()andTimeseriesGetRangeToFile()methods to use aPOSTrequest to allow for requesting supported maximum of 2000 symbols - Added logging around
Historical::BatchDownload - Changed the following Venue, Publisher, and Dataset descriptions:
- "ICE Futures Europe (Financials)" renamed to "ICE Europe Financials"
- "ICE Futures Europe (Commodities)" renamed to "ICE Europe Commodities"
- Fixed handling of
nulllast_modified_dateinMetadataGetDatasetConditionresponse - Fixed default
ShouldLogimplementation
- Made the buffer size used by the live clients when reading from the TCP socket
configurable through the
LiveBuilder::SetBufferSize()method - Added log level prefix to
ConsoleLogReceiveroutput - Added
iomanipcompatibility: fill, precision, and width topretty::Px(formerlyFixPx) - Added new
pretty::Tshelper type for human-readable formatting ofUnixNanos
- Live client instances can only be created through the
LiveBuilderclass - Changed
HeartbeatInterval()getters onLiveBlockingandLiveThreadedto return anstd::optional - Added new optional
ShouldLogvirtual method toILogReceiverto filter the levels of log messages that will be sent to the receiver
- Deprecated
FixPxin favor ofpretty::Pxwhich has consistent naming with the API and the Python and Rust client libraries
- Ensure
CPPHTTPLIB_OPENSSL_SUPPORTis defined at all locations wherecpp-httplibis included
- Fixed issue where not all data was processed in
Historical::TimeseriesGetRange() - Fixed issue with pointer arithmetic in
Buffer::Write() - Fixed issue where more data than necessary was copied in
Buffer::Shift()
- Changed the type of the
output_dirparameter inHistoricalClient::BatchDownload()to astd::filesystem::pathand the return type tostd::filesystem::path - Changed the type of the
file_pathparameter inHistoricalClient::TimeseriesGetRangeToFile()to astd::filesystem::path - Changed the type of the
file_pathparameter in theDbnFileStore,InFileStream, andOutFileStreamconstructors to astd::filesystem::path - Made
stype_inandschemaoptionals inMetadatato align with howMetadatais represented in other languages and removed the booleanhas_mixed_stype_inandhas_mixed_schemafields
- Fixed behavior where encoding metadata could lower the
version
This version marks the release of DBN version 3 (DBNv3), which is the new default.
API methods and DbnDecoder support decoding all versions of DBN, but now default to
upgrading data to version 3.
- Added
UpgradeToV3variant toVersionUpgradePolicyenum - Version 1 and 2 structs can be converted to version 3 structs with templated
Upgrademethod - Metadata will now always be encoded with a length divisible by 8 bytes for better alignment
- Added
is_lastfield to live subscription requests which will be used to improve the handling of split subscription requests
- Release of DBN version 3:
- Definition schema:
- Updated
InstrumentDefMsgwith newleg_fields to support multi-leg strategy definitions. - Expanded
raw_instrument_idto 64 bits to support more venues. Like other 64-bit integer fields, its value will now be quoted in JSON - Removed
trading_reference_date,trading_reference_price, andsettl_price_typefields which will be normalized in the statistics schema - Removed
md_security_trading_statusbetter served by the status schema - Updated
assetto 11 bytes andkAssetCstrLento match
- Updated
- Statistics schema:
- Updated
StatMsghas an expanded 64-bitquantityfield.kUndefStatQuantityhas been updated to match - The previous
StatMsghas been moved tov2::StatMsgorStatMsgV2
- Updated
- Definition schema:
- Fixed "Zstd error decompressing: Operation made no progress over multiple calls, due
to output buffer being full" error with
TimeseriesGetRange - Fixed missing implementation of
HistoricalBuilder::SetLogReceiver
- Added missing
operator<<andToStringimplementations forCmbp1Msg
- Added a
v3::StatMsgrecord with an expanded 64-bitquantityfield - Added
kDbnVersionconstants to each version namespace:v1,v2, andv3 - Added
kUndefStatQuantityconstants to each version namespace - Added new off-market publishers for Eurex, and European Energy Exchange (EEX)
- Increased live subscription symbol chunking size
- Fixed potential for unaligned records in live and historical streaming requests
- Added
InstitutionalPrioritizationvariant toMatchingAlgorithm
- Improved memory usage of historical streaming requests (
TimeseriesGetRange)
- Added
SystemCodeandErrorCodeenums to indicate types of system and error messages - Converting a
v1::SystemMsgto av2::SystemMsgnow sets tocodeto the heartbeat value - Introduced
kAssetCstrLenconstant containing the size ofassetfield inInstrumentDefMsg
- Increased the size of
assetfield inv3::InstrumentDefMsgfrom 7 to 11. Thev3::InstrumentDefMsgmessage size remains 520 bytes. - Set minimum CMake version to 3.24
- Changed type of
codefield inSystemMsgtoSystemCode - Changed type of
codefield inErrorMsgtoErrorCode
- Changed
TriStateto a regular enum to handle unexpected values - Fixed
ccachesupport - Changed to explicitly only support being built as a static library
- Added
idfield toLiveSubscriptionrequests, which will be used for improved error messages - Removed Windows-only
direntdependency
- Changed
DbnDecoder,FileStream,IReadable,IWritableto work onbytes
- Fixed CMake error when
zstdTargets.cmakeexists - Reverted
vcpkgbaseline change
- Upgraded default date version to 3.0.3
- Updated
vcpkgbaseline
- Upgraded default cpp-httplib version to 0.20.0 which requires OpenSSL >= 3.0
- Added new venues, datasets, and publishers for ICE Futures US, ICE Europe Financials products, Eurex, and European Energy Exchange (EEX)
- Added
Resubscribe()methods toLiveBlockingandLiveThreadedto make it easier to resume a live session after losing the connection to the live gateway - Added
Subscriptions()getter methods toLiveBlockingandLiveThreadedfor getting all active subscriptions - Added
CommoditySpotInstrumentClassvariant
- Fixed documentation for using external versions of libraries (credit: @ElBellaCiao)
- Updated the minimum supported C++ standard to C++17
- Updated enumerations for unreleased datasets and publishers.
- Added new dataset
EQUS.MINIand new publishersEQUS.MINI.EQUS,XNYS.TRADES.EQUS
- Changed historical metadata methods with
symbolsparameter to use aPOSTrequest to allow for requesting supported maximum of 2000 symbols
- Converted the
UserDefinedInstrumentenum class to an enum to safely allow handling invalid data and adding future variants - Updated the value of the
kMaxRecordLenconstant for the changes toInstrumentDefMsgin version 3
- Added
v3namespace in preparation for future DBN version 3 release. DBN version 2 remains the current and default version - Added
v3::InstrumentDefMsgrecord with new fields to support normalizing multi-leg strategy definitions- Removal of statistics-schema related fields
trading_reference_price,trading_reference_date, andsettl_price_type - Removal of the status-schema related field
md_security_trading_status
- Removal of statistics-schema related fields
- Removed deprecated
Packagingenum andpackagingfield that's no longer supported by the API - Renamed
VersionUpgradePolicy::UpgradetoUpgradeToV2in preparation for a future DBN version 3
- Created separate namespaces for each DBN version to create a consistent way to refer to record types from a particular DBN version regardless of whether the record changed between versions
- Added new IntelligentCross venues
ASPN,ASMT, andASPI
- Deprecated
Packagingenum andpackagingfield onBatchJob. These will be removed in a future version. All files from a batch job can be downloaded with theBatchDownloadmethod on the historical client
- Added new
NoneActionvariant that will be gradually rolled out to historical and liveGLBX.MDP3data
- Added new
Cmbp1Msg - Added new consolidated publisher values for
XNAS.BASICandDBEQ.MAX
- Changed the layout of
CbboMsgto better matchBboMsg - Renamed
Schema::CbbotoSchema::Cmbp1
- Deprecated
Packing::Tarand renamed it toTarDeprecated. This variant will be removed in a future version when it is no longer supported by the API
- Added
Intradayvariant toDatasetConditionin preparation for intraday data being available from the historical API - Renamed
exampledirectory toexamples - Renamed
testdirectory totests - Added new publisher values for
XCIS.BBOTRADESandXNYS.BBOTRADES
- Removed previously deprecated
DatasetCondition::Badvariant
- Added new publisher value for
DBEQ.SUMMARY
- Renamed
SType::Nasdaqvariant toSType::NasdaqSymbol - Renamed
SType::Cmsvariant toSType::CmsSymbol
- Added missing
ToStringandFromStringbranches forSType::NasdaqSymbolandSType::CmsSymbol - Removed
has_header_vvariable template that broke C++11 compatibility
- Improved installation with
CMake: license is now installed, transitive dependencies are configured when importing package
This release adds support for encoding DBN within the C++ client.
It also improves historical symbology support with the new TsSymbolMap class that
handles mapping historical records to a text symbol. To support this class, several types
for date fields were changed from strings or ints to date::year_month_day.
- Added
TsSymbolMapto support historical symbology where mappings change between days - Added
DbnEncoderclass for encoding DBN data - Added blocking API similar to
LiveBlockingtoDbnFileStorewith newGetMetadataandNextRecordmethods - Added
BboMsgrecord struct for futurebbo-1mandbbo-1sschemas - Added
PitSymbolmap constructor fromMetadataand adate::year_month_day - Added
Metadata::CreateSymbolMapandMetadata::CreateSymbolMapForDatemethods for creating symbology maps from historical metadata - Added blocking API similar to
LiveBlockingtoDbnFileStore - Added
SymbologyResolution::CreateSymbolMapmethod for creating a symbology map from a symbology resolution response - Added
InFileStreamandOutFileStreamhelper classes for reading and writing binary output respectively
- Added new dependency on Howard Hinnant's date library
- Added
ILogReceiver*parameter to allDbnDecoderconstructors and oneDbnFileStoreconstructor - Removed type
StrMappingInterval.MappingIntervalis now also used inSymbologyResolution. - Changed
Bbo1sMsgandBbo1mMsgto be aliases forBboMsg - Changed type of
start_dateandend_dateinMappingIntervaltodate::year_month_day - Added
stype_inandstype_outfields toSymbologyResolutionto support creating aTsSymbolMap
- Added
Upgrade()method toMetadatato update the metadata fields according to aVersionUpgradePolicy - Added new publisher values for
XNAS.BASICandXNAS.NLS
- Fixed issue where
Metadatawasn't upgraded when passingVersionUpgradePolicy::Upgrade
- Added configurable
heartbeat_intervalparameter for live clients that determines the timeout before heartbeatSystemMsgrecords will be sent. It can be configured via theSetHeartbeatIntervalmethod of theLiveBuilder - Added
SetAddressmethod toLiveBuilderfor configuring a custom gateway address without using the constructor directly - Added new
UncrossingPriceStatTypevariant - Added new publisher values for
XNAS.BASIC - Added
SetDataset(Dataset)overload toLiveBuilder - Added new off-market publisher values for
IFEU.IMPACTandNDEX.IMPACT
- Added
heartbeat_intervalparameter to theLiveconstructors - Removed
start_dateandend_datefields fromDatasetRangestruct in favor ofstartandend - Removed live
Subscribemethod overloads withuse_snapshotparameter in favor of separateSubscribeWithSnapshotmethod
- Fixed overloading of live
Subscribemethods - Fixed live subscribing with default-constructed
UnixNanos - Fixed descriptions for
FINNandFINYpublishers
- Added live
Subscribefunction overload withuse_snapshotparameter - Added
GetIfmethod toRecordthat allowsifchaining for handling multiple record types - Added record type checking to
Record::Getmethod to catch programming errors and prevent reading invalid data
- Added missing symbol chunking for live
Subscribeoverloads withconst std::string&startparameter
- Changed
FlagSetto 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_tor calling theRaw()method
- Changed format of
display_factorandprice_ratioto a fixed-precision decimal forInstrumentDefMsgandInstrumentDefMsgV1to match existing values and DBN crate - Changed format of
unit_of_measure_qtyto a fixed-precision decimal forInstrumentDefMsgV1to matchInstrumentDefMsg
- Added support for Conan-installed zstd (credit: @Hailios)
- Added missing copying of
ts_eventwhen upgrading structs from DBNv1 to DBNv2 - Fixed setting of compiler warnings and warnings that had accumulated
- Added
StatusMsgrecord, andStatusAction,StatusReason,TradingEvent, andTriStateenums - Added
CbboMsgrecord and correspondingConsolidatedBidAskPairstructure - Added new enum values for
SchemaandRTypecorresponding to new schemascbbo,cbbo-1s,cbbo-1m,tcbbo,bbo-1s,bbo-1m - Added
VolatilityandDeltaStatTypevariants - Added
UndefinedandTimeProRataMatchAlgorithmvariants - Changed format of
unit_of_measure_qtyto a fixed-precision decimal - Added logic to skip
find_packagecall ifnlohmann_jsonandhttplibtargets already exist (credit: @akovachev) - Added specific instructions for installing dependencies on Ubuntu and macOS (credit: @camrongodbout)
- Renamed publishers from deprecated datasets to their respective sources (
XNAS.NLSandXNYS.TRADESrespectively)
- Deprecated dataset values
FINN.NLSandFINY.TRADES
- Fixed out-of-order initialization in
DbnDecoder(credit: @Hailios) - Renamed
MatchAlgorithm::EurodollarOptionstoMatchAlgorithm::EurodollarFutures
- Added new publisher values for consolidated DBEQ.MAX
- Added constructor to
WithTsOutthat updateslengthto the correct value to account for the extra 8 bytes - Upgraded default cpp-httplib version to 0.14.3 (last to still support OpenSSL 1.1)
- Upgraded default nlohmann_json version to 3.11.3
- Changed default
upgrade_policytoUpgradeso by default the primary record types can always be used - Renamed
dummyfield inImbalanceMsgandStatMsgtoreserved
- Fixed handling of
ts_outwhen decoding DBNv1 and upgrading to version 2 - Fixed missing logic to upgrade
ErrorMsgV1andSystemMsgV1when decoding DBN withVersionUpgradePolicy::Upgrade - Added missing
StatType::Vwapvariant used in the ICE datasets - Added missing
ToStringandoperator<<handling forStatType::ClosePriceandStatType::NetChange - Fixed potential for invalid reads when decoding C strings in
DbnDecoder
- Increased size of
SystemMsgandErrorMsgto provide better messages from Live gateway- Increased length of
errandmsgfields for more detailed messages - Added
is_lastfield toErrorMsgto indicate the last error in a chain - Added
codefield toSystemMsgandErrorMsg, although currently unused - Added new
is_lastparameter toErrorMsg::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
ErrorMsgV1andSystemMsgV1
- Increased length of
- Added
PitSymbolMaphelper for keeping track of symbology mappings in Live - Added new publisher value for OPRA MIAX Sapphire
- Fixed misaligned read undefined behavior when decoding records
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 the change should be seamless for most users.
- Added support for DBN encoding version 2 (DBNv2), affecting
SymbolMappingMsg,InstrumentDefMsg, andMetadata- Version 1 structs can be converted to version 2 structs with the
ToV2()method
- Version 1 structs can be converted to version 2 structs with the
- Added
symbol_cstr_lenfield toMetadatato indicate the length of fixed symbol strings - Added
stype_inandstype_outfields toSymbolMappingMsgto provide more context with live symbology updates - Added
IndexTsmethods to every record type which returns the primary timestamp - Added
VersionUpgradePolicyenum to allow specifying how to handle decoding records from prior DBN versions - Added
InstrumentDefMsgV2andSymbolMappingMsgV2type aliases - Added
kDbnVersionconstant for current DBN version - Added
kSymbolCstrLen,kSymbolCstrLenV1, andkSymbolCstrLenV2constants 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
kMaxRecordLenconstant for the length of the largest record type - Added ability to convert
FlagSetto underlying representation
- The old
InstrumentDefMsgis nowInstrumentDefMsgV1incompat.hpp - The old
SymbolMappingMsgis nowSymbolMappingMsgV1incompat.hpp - Converted the following enum classes to enums to allow safely adding new variants:
SecurityUpdateActionandSType - Renamed
dummytoreservedinInstrumentDefMsg - Removed
reserved2,reserved3,reserved4, andreserved5fromInstrumentDefMsg - Moved position of
strike_pricewithinInstrumentDefMsg - Removed deprecated
SecurityUpdateAction::Invalidvariant
- Added new publisher values in preparation for DBEQ.PLUS
- Added
ToIso8601forUnixNanosfor converting to human-readable ISO8601 datetime string - Added
kUndefTimestampandkUndefStatQuantityconstants - Added flag
kTobfor top-of-book messages
- Added
pretty_pxoption forBatchSubmitJob, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_tsoption forBatchSubmitJob, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbolsoption toBatchSubmitJob, which appends the raw symbol to every record (available for CSV and JSON text encodings) reducing the need to look at thesymbology.jsonfile - Added
split_symbolsoption forBatchSubmitJob, which will split files by raw symbol - Added
encodingoption toBatchSubmitJobto allow requesting non-DBN encoded data through the client - Added
map_symbols,pretty_px, andpretty_tstoBatchJobresponse - Added
ARCX.PILLAR.ARCXpublisher - Added
ClosePriceandNetChangeStatTypes used in theOPRA.PILLARdataset
- Remove
default_valueparameter fromHistorical::SymbologyResolve
- Fixed typo in
BATY.PITCH.BATYpublisher
- Added the
Publisher,Venue, andDatasetenums - Added
Publishergetters toRecordandRecordHeaderto convert thepublisher_idto its enum
- Added
raw_instrument_idto definition schema - Added
operator==andoperator!=implementations forDatasetConditionDetailandDatasetRange
- Changed
MetadataListPublishersto return avector<PublisherDetail> MetadataListFields:- Changed return type to
vector<FieldDetail> - Made
encodingandschemaparameters required - Removed
datasetparameter
- Changed return type to
MetadataListUnitPrices:- Changed return type to
vector<UnitPricesForMode> - Made
datasetparameter required - Removed
modeandschemaparameters
- Changed return type to
- Fixed installation of
nlohmann_jsonwhen using bundled version - Added missing
operator!=implementations forMetadata,MappingInterval, andSymbolMapping
- Added preliminary support for Windows
- Added
LiveThreaded::BlockForStopto make it easier to wait for one or more records before closing the session - Changed
TimeseriesGetRangeto request a Zstd-compressed result for more efficient data transfer - Switched
BatchSubmitJobto use form data to avoid query param length limit - Switched
SymbologyResolveto use POST request with form data to avoid query param length limit
- Changed size-related fields and
limitparameters to usestd::uint64_tfor consistency across architectures
- Removed usage of non-portable
__PRETTY_FUNCTION__
- Added constants for dataset codes for Databento Equity Basic and OPRA Pillar
- Added
const char*getters to records for fixed-lengthchararrays - Added
RTypegetter toRecord
- Added batching for live subscriptions to avoid hitting max message length
- Fixed bug in Zstd decompression
- Fixed
Historical::BatchDownloadtruncating file before writing each chunk
- Added
Reconnectmethods toLiveBlockingandLiveThreaded - Added optional
exception_callbackargument toLiveThreaded::Startto improve error handling options - Added batch download support data files (
condition.jsonandsymbology.json) - Added support for logging warnings from Historical API
- Relaxed 10 minute minimum request time range restriction
- Changed
use_ts_outdefault tofalse
- Fixed missing definition for
operator==forImbalanceMsg
- Changed
endandend_dateto optional to support new forward-fill behaviour
- Renamed
booklevelMBP field tolevelsfor brevity and consistent naming - Removed
open_interest_qtyandcleared_volumefields from definition schema that were always unset
- Added initial support for live data with
LiveBlockingandLiveThreadedclients - Added support for statistics schema
- Added
SystemMsgandErrorMsgrecords for use in live data - Added
strike_price,strike_price_currency, andinstrument_classtoInstrumentDefMsg - Added
FixedPxhelper class for formatting fixed prices - Added configurable log receiver
ILogReceiver - Added
instrument_class,strike_price, andstrike_price_currencyto definition schema - Added additional
conditionvariants forDatasetConditionDetail(degraded, pending, missing) - Added additional member
last_modified_datetoDatasetConditionDetail - Added
has_mixed_schema,has_mixed_stype_in, andts_outtoMetadatato support live data - Added optional
compressionparameter toBatchSubmitJob
- Removed
relatedandrelated_security_idfromInstrumentDefMsg - Renamed
BatchJob.costtocost_usdand value now expressed as US dollars - Renamed
SType::ProductIdtoSType::InstrumentIdandSType::NativetoSType::RawSymbol - Renamed
RecordHeader::product_idtoinstrument_id - Renamed
InstrumentDefMsg::symboltoraw_symbol - Renamed
SymbolMapping::native_symboltoraw_symbol - Changed
expirationandactiontype toUnixNanos - Changed some fields to enums in
InstrumentDefMsg
- Deprecated
SType::Smartto split intoSType::ParentandSType::Continuous
- Fixed parsing of
BatchSubmitJobresponse - Fixed invalid read in
DbnDecoder - Fixed memory leak in
TryCreateDir
- Removed usage of unreliable
std::ifstream::readsome
- Fixed Zstd decoding of files with multiple frames
- Added support for imbalance schema
- Added support for decoding
ts_outfield - Added flags
kSnapshotandkMaybeBadBook
- Removed
record_countfromMetadata - Changed
Historical::BatchDownloadto return the paths of the downloaded files
- Added
Historical::MetadataGetDatasetRange
- Changed
MetadataGetDatasetConditionto returnvector<DatasetConditionDetail> - Removed
MetadataListCompressions(redundant with docs) - Removed
MetadataListEncodings(redundant with docs) - Removed optional
startandendparams fromMetadataListSchemas(redundant) - Renamed
FileBentotoDbnFileStore
- Added live gateway resolution
- Added
SymbolMappingMsgandErrorMsgrecords - Added
ActionandSideenums - Added
available_start_dateandavailable_end_datetoDatasetConditionInfo - Made
start_dateandend_dateoptional forHistorical::MetadataGetDatasetCondition - Improved API for
flagsrecord fields - Added
PKGBUILDto demonstrate installation - Disabled unit testing by default
- Removed
is_full_universeandis_examplefields fromBatchJob - Refactored rtypes
- Introduced separate rtypes for each OHLCV schema
- Renamed DBZ to DBN
- Renamed
DbzParsertoDbnDecoder
- Renamed
- Renamed
TimeseriesStreamtoTimeseriesGetRange - Changed
kAllSymbolsrepresentation
- Fixed usage of as a system library
- Added support for definition schema
- Added option for CMake to download gtest
- Updated
Flagenum
- Standardized getter method names to pascal case
- Renamed
is_full_booktois_full_universe - Renamed
TickMsgtoMboMsg - Changed
flagsfields to unsigned
- Fixed cancellation in
Historical::TimeseriesStream - Fixed race condition in
Historical::TimeseriesStreamexception handling - Fixed gtest linker error on macOS
- Added
Historical::MetadataGetDatasetCondition - Improved Zstd CMake integration
- Fixed requesting all symbols for a dataset
- Initial release with support for historical data