- Added
BatchClient::get_job_details()to access the full details of a batch job - Upgraded DBN version to 0.59.0:
- Added
encode_record_ref_with_ts_outandencode_record_refs_with_ts_outmethods to theEncodeRecordRefandAsyncEncodeRecordReftraits. The DBN encoder uses vectored I/O to append thets_outtimestamp without copying the record body, while CSV and JSON encoders serialize from a cloned struct as usual - Added new venues, datasets, and publishers for US Equities Securities Information Processors
- Added
- Added logging for gateway
ErrorMsgandSystemMsgrecords in the liveClient. Suppress via thetracingsubscriber's level filter
- Added
caseandpayloadfields toApiErrorto expose the machine-readable error identifier and structured context (dataset, requested range, available range, etc.) returned by the historical API - Included the error
caseinApiError'sDisplayoutput - Upgraded DBN version to 0.58.0:
- Relaxed
TsSymbolMap::insertto acceptimpl Into<Arc<String>>for thesymbolparameter
- Relaxed
- Upgraded DBN version to 0.57.0:
- Added
INDEXInstrumentClassvariant - Added
StatTypevariantsINDICATIVE_CLOSE_PRICEandVENUE_SPECIFIC_PRICE_1
- Added
- Added
SplitDuration::Yearfor historical batch job submission - Upgraded DBN version to 0.56.0:
- Added
DecodeRecordRef::decode_buf_iter()for lazily iterating ownedRecordBufs via a standardIterator - Added
AsyncDecodeRecordRef::decode_stream()for lazily decoding ownedRecordBufs via afutures::Stream - Improved
DbnFsmdecode throughput by makingAlignedBuffershifts lazy, deferring the internal move to buffer refill boundaries - Added new publisher values for Cboe Titanium Cboe Global Indices Feed
- Added support for splitting files by year to
TimeSplitter
- Added
- Upgraded DBN version to 0.55.0:
- Added new publisher values for OPRA MEMX MX2 Options and IEX Options
- Improved
DbnFsmdecode throughput on current-version data andAsIsworkloads
- Removed unsound
CopyandCloneimplementations forRecordRefMut
- Replaced
typed-builderdependency withbonfor all parameter builder structs - Added
maybe_prefixed setters for allOptionfields on parameter builders, allowing callers to passOption<T>directly (e.g.maybe_start(Some(datetime))ormaybe_start(None)) - Upgraded DBN version to 0.54.0:
- Added
RecordBuf, an owned stack-allocated buffer for holding a DBN record of dynamic type. ComplementsRecordRef(borrowed, dynamic) and concrete types (owned, static). Supportsget(),try_get(),set(),upgrade(), and cross-capacityPartialEq - Added
RecordRefMutfor mutable non-owning references to DBN records - Added
RecordRef::to_owned()andRecordRefMut::to_owned()for converting borrowed records to an ownedRecordBuf - Added
Hash,PartialEq, andEqforRecordRef, including cross-type equality betweenRecordBufandRecordRef - Changed
RecordHeaderto beCopy
- Added
- Changed
use_snapshot()setter onSubscriptionbuilder to require an explicitboolargument:.use_snapshot()becomes.use_snapshot(true) - Changed
map_symbolsfield inSubmitJobParamsfrombooltoOption<bool> - Changed
limit()setter onGetRangeParams,GetRangeToFileParams,GetQueryParams, andSubmitJobParamsbuilders to acceptNonZeroU64instead ofOption<NonZeroU64>. Usemaybe_limit()for the previous behavior of passing anOptiondirectly
- Removed
#[doc(hidden)]fromSubscription::use_snapshot
- Added
TimeoutConfstruct andtimeout_conf()builder method for configuring connect and auth timeouts on the Live client (defaults to 10s and 30s) - Added
ConnectTimeoutandAuthTimeouterror variants - Upgraded DBN version to 0.53.0:
FlagSetsetter methods are nowconst, making it easier to define constants
- Changed
split_durationfield inSubmitJobParamsandBatchJobfromOption<SplitDuration>toSplitDuration. UseSplitDuration::Noneinstead ofNone
- Added missing
Nonevariant toSplitDurationenum for explicitly requesting no time-based splitting
- Upgraded DBN version to 0.52.0
- Added
HeartbeatTimeouterror variant:next_recordandfill_bufreturnError::HeartbeatTimeoutif no data is received forheartbeat_interval+ 5 seconds (defaults to 35 seconds) - Changed
SlowReaderBehavior::Skipto send "skip" instead of "drop" to the gateway
- Added support for
progressfield inBatchJobresponse
- Upgraded DBN version to 0.51.0:
- Added logic to set
codewhen upgrading version 1ErrorMsgto newer versions - Upgraded
async-compressiondependency version to 0.4.41 - Upgraded
timeversion to 0.3.47 - Fixed miri issue with potential for unaligned data when decoding DBN through
DbnFsm
- Added logic to set
- Upgraded DBN version to 0.50.0:
- Added
SkippedRecordsAfterSlowReadingto theErrorCodeenum for gateway errors originating from slow client catch-up
- Added
- Upgraded reqwest version to 0.13
- Added three new methods to the Live client for more control over when I/O occurs. Together
they provide an alternative to
next_record():fill_buf(): reads available data from the socket into the internal buffer without processing recordstry_next_record(): returns the next record from the internal buffer without performing any I/O. ReturnsOk(None)if no complete records are available in the buffer.is_closed(): returns whether the connection has been closed
- Added
SlowReaderBehaviorenum andslow_reader_behavior()setter on the live client builder to configure gateway behavior when client falls behind - Added
slow_reader_behavior()getter toLiveClient - Upgraded DBN version to 0.49.0:
- Added
encode_recordstoEncodeRecordandAsyncEncodeRecordtraits for more efficient batch encoding - Added
encode_record_refstoEncodeRecordRefandAsyncEncodeRecordReftraits with more efficient vectored I/O implementation for DBN
- Added
- From DBN:
- Moved
encode_recordsmethod from theEncodeDbntrait toEncodeRecord
- Moved
- Added support for using compression in the live API:
- Added
compression()setter on the live client builder - Added
compression()getter on the live client
- Added
- A new
Unknown(String)variant was added to the reference data enumsCountry,Currency,Event, andEventSubType. This allows for forward compatibility when new variants are added - Upgraded DBN version to 0.48.0:
- Added initial support for splitting DBN files
- Added new publisher for Blue Ocean ATS (
OCEA_MEMOIR_OCEA)
- Added
http_client_buildermethod to the reference and historical client builders to allow more customization over the HTTP client used - Improved logging in Historical and Reference APIs
- The following reference data enums now implement
Display:CountryCurrencyEventEventSubTypeFrequencyOutturnStyleSecurityType
- Refactor
live::protocolmessages to implement a newRawApiMsgtrait - Move optional session parameters into
SessionOptionsstruct which implementsDefault - As part of adding the new variant to the four reference data enums:
Country,Currency,Event, andEventSubTypeare no longerCopy- The
Errortype of theFromStrimplementation was changed toInfallible: any unknown string will be parsed to theUnknownvariant - The
as_strmethod on these enums was removed: useas_refinstead
Eventhas been marked non-exhaustivehistorical::ClientBuilderandreference::ClientBuilderare no longerClone
- From DBN:
- Fixed issue where
AsyncDynReaderinstances created fromwith_buffer()would only decode the first frame of multi-frame Zstandard files
- Fixed issue where
- Upgraded DBN version to 0.47.0:
- Added new off-market publisher for Cboe Futures Exchange (
XCBF_PITCH_XOFF) - Added new
StatTypevariants to be used byXCBF.PITCHdataset:UpperPriceLimitLowerPriceLimitBlockVolumeVenueSpecificVolume1
- Upgraded
timeversion to 0.3.45
- Added new off-market publisher for Cboe Futures Exchange (
- Improved documentation of heartbeat intervals
- Changed
Error::BadArgument::param_namefrom aStringto a&'static str
- Fixed panic on failed write during authentication
- Added optional
chronofeature for convertingchronodate and datetime types toDateRange,DateTimeRange, andSubscription::start(credit: @wtn) - Upgraded DBN version to 0.45.0:
- Added new venue, dataset, and publisher for Cboe Futures Exchange (
XCBF.PITCH)
- Added new venue, dataset, and publisher for Cboe Futures Exchange (
- Changed the default to
truefor themap_symbolsparameter inSubmitJobParams::builder()for JSON and CSV encodings - Moved
DateTimeLiketrait to top level
- Fixed checksum verification for resumed downloads in
batch().download(). Previously, it would erroneously fail
- Added support for using built-in range syntax for specifying date and datetime ranges
in the historical API, e.g.
date!(2020-01-01)..=date!(2020-12-31) - Changed
metadata().get_dataset_range(),metadata().list_schemas(), andmetadata().list_unit_prices()to accept anyimpl AsRef<str>as the dataset parameter - Upgraded DBN version to 0.44.0:
- Added logic to set
codewhen upgrading version 1SystemMsgto newer versions - Added
Dataset::publishers()method to retrieve allPublishervalues for a dataset
- Added logic to set
- Updated the minimum supported
tokioversion to 1.41, which was released one year ago - Made reference enums
Country,Currency, andEventSubTypenon-exhaustive - Removed variants from
CountryandCurrencythat were not present in any data - Added more variants to
EventSubType
- Initial release with Reference API support
- Upgraded DBN version to 0.43.0:
- Added explicit
Unsetvariant forSystemCodeandErrorCode - Added
Defaultimplementation forSystemCodeandErrorCode
- Added explicit
- Upgraded DBN version to 0.42.0
- Fixed visibility of fields in
DateRangeandDateTimeRange
- Added batch download retry, resumption, and checksum verification
- Changed setter for
batch::DownloadParamsto accept anyimpl ToStringforfilename_to_download
- Changed
sha2andhexto required dependencies
- Upgraded DBN version to 0.41.0:
- Added
intervalmethod toRTypeandSchemato get the duration for subsampled schemas likeOhlcv1HandCbbo1S - Changed the default value for
channel_idto beu8::MAXinMboMsgandu16::MAXelsewhere since 0 is a valid channel ID
- Added
- Upgraded DBN version to 0.40.0:
- Added
DbnVersionnew type
- Added
- Removed
bill_idfield fromBatchJobstruct - Breaking changes from DBN:
- Marked
ErrorCodeandSystemCodenon-exhaustive to allow adding future variants without a breaking change - Added
EndOfIntervalvariant toSystemCodeto notify when all OHLCV bars and subsampled BBO records have been published for a time interval
- Marked
- Upgraded DBN version to 0.39.1:
- Added
PUBLISHER_SPECIFICflag - Improved JSON encoding performance
- Added a
Defaultimplementation forSecurityUpdateAction
- Added
- Removed unused
Receivedvariant fromJobStateenum
- Changed
timeseries.get_range_to_file()to return a concrete type instead of an impl trait type - Upgraded DBN version to 0.39.0:
- Added
side()andunpaired_side()methods toImbalanceMsgthat convert the fields of the same name to theSideenum - Added
pretty_auction_timeproperty in Python forImbalanceMsg - Added
Defaultimplementation forStatUpdateAction - Added warnings to the floating-point getter methods' docstrings
- Added
actionandts_in_deltagetters toBboMsg - Added
ts_recvgetter toStatusMsg - Added missing floating-point price getters to
InstrumentDefMsgrecord types from all DBN versions - Added more floating-point price getters to
ImbalanceMsg - Added floating-point price getter to
StatMsgandv1::StatMsg
- Added
- Breaking changes from DBN:
- Changed
SystemMsg::code()andErrorMsg::code()methods to return aResultinstead of anOptionto be consistent with other enum conversion methods - Changed
auction_timefield inImbalanceMsgto be formatted as a timestamp
- Changed
- Removed unused
S3andDiskvariants fromDeliveryenum
- Upgraded DBN version to 0.38.0:
- Renamed
Compression::ZStdtoZstdfor consistency
- Renamed
- Upgraded DBN version to 0.37.0:
- Renamed the following Venue, Dataset, and Publishers:
XEERtoXEEEXEER.EOBItoXEEE.EOBIXEER.EOBI.XEERtoXEEE.EOBI.XEEEXEER.EOBI.XOFFtoXEEE.EOBI.XOFF
- Renamed
CMBP1constant toCMBP_1for consistency withMBP_1andMBP_10
- Renamed the following Venue, Dataset, and Publishers:
- Removed
Intradayvariant fromDatasetConditionenum
- Added 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
- Deprecated
Historical::with_url(): use the builder to override the base URL - Deprecated the
upgrade_policyparameters fortimseries().get_range()andtimeseries().get_range_to_file(): use theHistoricalclient parameter instead
- Added
range_by_schemafield toDatasetRangestruct
- Changed type of
last_modified_dateinDatasetConditionDetailtoOption<time::Date>to support missing dates
- Made the buffer size used by the live client when reading from the TCP socket
configurable through the
LiveBuilder::buffer_size()method - Added support for using
rustlswithout pulling in OpenSSL.reqwestwith OpenSSL is still the default - Upgraded DBN version to 0.36.0:
- Added support for width, fill, and padding when formatting
pretty::Ts - Added support for sign, precision, width, fill, and padding when formatting
pretty::Px - Optimized pretty formatting of prices and timestamps
- Added support for width, fill, and padding when formatting
- Changed type of
split_durationtoOption<SplitDuration>to support setting no split duration - Breaking changes from DBN:
- Moved core async decoding and encoding functionality to new traits to
match the sync interface and present a standardized interface
- Decoding:
AsyncDecodeRecordRefandAsyncDecodeRecord - Encoding:
AsyncEncodeRecord,AsyncEncodeRecordRef, andAsyncEncodeRecordTextExt
- Decoding:
- Moved core async decoding and encoding functionality to new traits to
match the sync interface and present a standardized interface
- Deprecated
LiveClient::connectandLiveClient::connect_with_addrmethods in favor of using the builder so additional optional parameters can be added without a breaking change
- Fixed bug with deserializing
nullsplit_durationin historicalbatch().list_jobs()
- Improved performance of live client by removing redundant state
- Upgraded DBN version to 0.35.1
- Fixed handling of
VersionUpgradePolicyintimeseries().get_range()andget_range_to_file() - Bug fixes from DBN:
- Fixed behavior where encoding metadata could lower the
version - Changed
DbnFsm::data()to exclude all processed data - Fixed
Metadata::upgrade()behavior withUpgradeToV2
- Fixed behavior where encoding metadata could lower the
- Fixed handling of
VersionUpgradePolicyin live client - Fixed default upgrade policies to
UpgradeToV3to match announcement for version 0.26.0
This version marks the release of DBN version 3 (DBNv3), which is the new default. API methods and decoders support decoding all versions of DBN, but now default to upgrading data to version 3.
- Added
is_lastfield to live subscription requests which will be used to improve the handling of split subscription requests - Upgraded DBN version to 0.35.0:
- Version 1 and 2 structs can be converted to version 3 structs with the
Fromtrait - Implemented conversion from
RecordReftoIoSlicefor use withWrite::write_vectored
- Version 1 and 2 structs can be converted to version 3 structs with the
- Breaking changes from DBN:
- Definition schema:
- Updated
InstrumentDefMsgwith newleg_fields to support multi-leg strategy definitions. - Expanded
assetto 11 bytes andASSET_CSTR_LENto match - 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
- Statistics schema:
- Updated
StatMsghas an expanded 64-bitquantityfield. Like other 64-bit integer fields, its value will now be quoted in JSON - The previous
StatMsghas been moved tov2::StatMsgorStatMsgV2
- Updated
- Changed the default
VersionUpgradePolicytoUpgradeToV3 - Updated the minimum supported
tokioversion to 1.38, which was released one year ago
- Definition schema:
- Increased live subscription symbol chunking size
- Upgraded DBN version to 0.34.0:
- Added a
v3::StatMsgrecord with an expanded 64-bitquantityfield - Added
with_compression_levelmethods toDynWriter,AsyncDynWriter, andAsyncDynBufWriter - Added
DBN_VERSIONconstants to each version module:v1,v2, andv3 - Added
UNDEF_STAT_QUANTITYconstants to each version module - Added statistics compatibility trait
StatRecfor generalizing across different versions of the statistics record - Added
AsRef<[u8]>implementations forRecordEnumandRecordRefEnum - Added new off-market publishers for Eurex, and European Energy Exchange (EEX)
- Added a
- From DBN:
- Made
Recorda subtrait ofAsRef<[u8]>as all records should be convertible to bytes
- Made
- Upgraded DBN version to 0.33.0:
- Added
SystemCodeandErrorCodeenums to indicate types of system and error messages - Added
code()methods toSystemMsgandErrorMsgto retrieve the enum value if one exists and equivalent properties in Python - Converting a
v1::SystemMsgto av2::SystemMsgnow sets tocodeto the heartbeat value - Added
ASSET_CSTR_LENconstants for the size ofassetfield inInstrumentDefMsgin different DBN versions - Added
encode_record_with_sym()method toAsyncJsonEncoderwhich encodes a record along with its text symbol to match the sync encoder
- Added
- Breaking changes from DBN:
- Added
codeparameter toSystemCode::new()andErrorMsg::new() - Updated the
rtype_dispatchandschema_dispatchmacro invocations to look more like function invocation - Increased the size of
assetfield inv3::InstrumentDefMsgfrom 7 to 11. TheInstrumentDefMsgV3message size remains 520 bytes.
- Added
- Added
subscriptionstoLiveClientDebugimplementation - Upgraded DBN version to 0.32.0:
- Added
SystemCodeandErrorCodeenums to indicate types of system and error messages - Added
code()methods toSystemMsgandErrorMsgto retrieve the enum value if one exists and equivalent properties in Python - Converting a
v1::SystemMsgto av2::SystemMsgnow sets tocodeto the heartbeat value - Added
OrdandPartialOrdimplementations for all enums andFlagSetto allow for use in ordered containers likeBTreeMap - Added
decode_records()method toAsyncDbnDecoderandAsyncDbnRecordDecoderwhich is similar to the sync decoder methods of the same name - Upgraded
pyo3version to 0.24.1 - Upgraded
timeversion to 0.3.41
- Added
- Added new
idfield to liveSubscription, which will be used for improved error messages - Added new
idparameter tolive::protocol::SubRequest::new()method - Breaking changes from DBN:
- Added
codeparameter toSystemCode::new()andErrorMsg::new() - Updated the
rtype_dispatchandschema_dispatchmacro invocations to look more like function invocation - Removed deprecated
datasetmodule. The top-levelDatasetenum and itsconstas_str()method provide the same functionality for all datasets - Removed deprecated
SymbolIndex::get_for_rec_ref()method
- Added
- Added an implementation
From<Date>forDateRangeandDateTimeRangeto make it simpler to request a single full day's worth of data - Added conversions between
DateRangeandDateTimeRange - Added conversions from
timeseries::GetRangeParams,timeseries::GetRangeToFileParams, anddbn::Metadatatosymbology::ResolveParams - Upgraded DBN version to 0.31.0:
- Added support for mapping symbols from instrument definitions to
PitSymbolMapwith a newon_instrument_def()method - Added instrument definition compatibility trait
InstrumentDefRecfor generalizing across different versions of the instrument definition record - Added
OrdandPartialOrdimplementations for all enums andFlagSetto allow for use in ordered containers likeBTreeMap - Added
decode_records()method toAsyncDbnDecoderandAsyncDbnRecordDecoderwhich is similar to the sync decoder methods of the same name - Removed deprecated
datasetmodule. The top-levelDatasetenum and itsconstas_str()method provide the same functionality for all datasets - Removed deprecated
SymbolIndex::get_for_rec_ref()method
- Added support for mapping symbols from instrument definitions to
- Improved error when calling
LiveClient::next_record()on an instance that hasn't been started - Improved error when calling
LiveClient::start()on an instance that has already been started - Upgraded DBN version to 0.29.0:
- Added new venues, datasets, and publishers for ICE Futures US, ICE Europe Financials products, Eurex, and European Energy Exchange (EEX)
- Added new
SkipBytesandAsyncSkipBytestraits which are a subset of theSeekandAsyncSeektraits respectively, only supporting seeking forward from the current position - Deprecated
AsyncRecordDecoder::get_mut()andAsyncDecoder::get_mut()as modifying the inner reader after decoding any records could lead to a corrupted stream and decoding errors
- Added
LiveClient::reconnect()andLiveClient::resubscribe()methods to make it easier to resume a live session after losing the connection to the live gateway - Added
subscriptions()andsubscriptions_mut()getters toLiveClientfor getting all active subscriptions - Added
shutdown()method tolive::protocolto clean up the active session - Downgraded to tracing span level on
LiveClient::next_record()to "debug" to reduce performance impact - Added
From<&[&str]>andFrom<[str; N]>implementations forSymbols
- Changed
LiveClient::close()to take&mut selfrather than an owned value toselfnow that clients can be reused through thereconnect()method - Changed
LiveClient::subscribe()to take aSubscriptionparameter rather than a&Subscriptionbecause it will now store theSubscriptionstruct internally - Upgraded DBN version to 0.28.0:
- Added
CommoditySpotInstrumentClassvariant and madeInstrumentClassnon-exhaustive to allow future additions without breaking changes
- Added
- Upgraded DBN version to 0.27.0:
- Updated enumerations for unreleased US equities datasets and publishers
- Added new venue
EQUSfor consolidated US equities - Added new dataset
EQUS.MINIand new publishersEQUS.MINI.EQUSandXNYS.TRADES.EQUS
- Changed historical metadata methods with
symbolsparameter to use aPOSTrequest to allow for requesting supported maximum of 2000 symbols
- Upgraded DBN version to 0.26.0:
- 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
- Added initial support for merging DBN:
- Decoding streams:
MergeDecoderandMergeRecordDecoderstructs - Metadata:
MergeDecoderstruct andMetadata::merge()method - In the CLI: specify more than one input file to initiate a merge
- Decoding streams:
- Eliminated
unsafeinFromimplementations for record structs from different versions
- Added
- Upgraded DBN version to 0.25.0:
- Added
v1andv2namespaces in DBN to allow unambiguously referring to the record types for a given DBN version regardless of whether the record type has changed - Changed
dataset()method onMetadataBuilderto accept animpl ToStringso nowDatasetand&strcan be passed directly - Changed async DBN decoding to return
Ok(None)when an incomplete record remains in the stream. This matches the existing behavior of sync DBN decoding
- Added
- Upgraded
thiserrorversion to 2.0
- Removed deprecated
Packagingenum andpackagingfield that's no longer supported by the API - As part of the DBN version upgrade:
VersionUpgradePolicy::Upgradewas renamed toUpgradeToV2- Changed async DBN decoding to return
Ok(None)when an incomplete record remains in the stream
- Upgraded DBN version to 0.23.1:
- Added floating-point getters for price fields
- Added new IntelligentCross venues
ASPN,ASMT, andASPI - Upgraded
thiserrorversion to 2.0
- Deprecated
Packagingenum andpackagingfield onSubmitJobParamsandBatchJob. These will be removed in a future version. All files from a batch job can be downloaded with thebatch().download()method on the historical client
- Upgraded DBN version to 0.23.0:
- Added new
NoneActionvariant that will be gradually rolled out to historical and liveGLBX.MDP3data - Added consistent escaping of non-printable and non-ASCII values when text encoding
c_charfields - Implemented
DefaultforActionandSide - Implemented missing
Serializefor (withserdefeature enabled) forVenue,Dataset,Publisher,Compression,SType,Schema, andEncoding
- Added new
- Upgraded DBN version to 0.22.1:
- Fixed buffer overrun
- Combined
_reserved3andreserved4fields inCbboMsg
- Made several previously internal functions public to allow advanced users more
customization and piecemeal usage of the live API:
ApiKeySymbols::to_chunked_api_string()live::protocolmodule containing implementations of the raw API messages
- Changed from
logcrate totracingfor better diagnostics
- Upgraded DBN version to 0.21.0 for:
- Changed the layout of
CbboMsgto better matchBboMsg - Renamed
Schema::CbbotoSchema::Cmbp1
- Changed the layout of
- Upgraded
typed-builderversion to 0.20
- Deprecated
Packaging::Tar. Users should switch toPackaging::Zip. 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 - Upgraded DBN version to 0.20.1 for new publisher values for
XCIS.BBOTRADESandXNYS.BBOTRADES
- Upgraded DBN version to 0.20.0:
- Renamed
SType::Nasdaqvariant toSType::NasdaqSymbol - Renamed
SType::Cmsvariant toSType::CmsSymbol
- Renamed
- Upgraded DBN version to 0.19.1 with fixes for
BBOMsgrecord struct
- Upgraded DBN version to 0.19.0 with new
BBOMsgrecord struct
- Added
historical::timeseries::get_range_to_filemethod to persist the data stream to a given path before returning anAsyncDbnDecoder - Upgraded DBN version to 0.18.2
- Added getter for
heartbeat_intervaltoLiveClient
- Fixed potential incorrect DNS resolution when overriding the live gateway address
with
live::Builder::addr
- Added configurable
heartbeat_intervalparameter for live client that determines the timeout before heartbeatSystemMsgrecords will be sent. It can be configured via theheartbeat_intervalandheartbeat_interval_smethods of thelive::ClientBuilder - Added
addrfunction tolive::ClientBuilderfor configuring a custom gateway address without usingLiveClient::connect_with_addrdirectly - Upgraded DBN version to 0.18.1
- Added
heartbeat_intervalparameter toLiveClient::connectandLiveClient::connect_with_addr - Removed deprecated
start_dateandend_datefields fromDatasetRangestruct
- Added
use_snapshotattribute toSubscription, defaults to false - Upgraded reqwest version to 0.12
- Upgraded DBN version to 0.18.0
- Changed type of
flagsinMboMsg,TradeMsg,Mbp1Msg,Mbp10Msg, andCbboMsgfromu8to a newFlagSettype with predicate methods for the various bit flags as well as setters. Theu8value can still be obtained by calling theraw()method- Improved
Debugformatting
- Improved
- Switched
DecodeStreamfromstreaming_iteratorcrate tofallible_streaming_iteratorto allow better notification of errors - Changed default value for
stype_inandstype_outinSymbolMappingMsgtou8::MAXto match C++ client and to reflect an unknown value. This also changes the value of these fields when upgrading aSymbolMappingMsgV1to DBNv2
- Changed type of
- Fixed build when only
livefeature is enabled
- Added
startandendfields to theDatasetRangestruct which provide time resolution and an exclusive end date - Upgraded DBN version to 0.17.1
- The
start_dateandend_datefields of theDatasetRangestruct are deprecated and will be removed in a future release
- Upgraded DBN version to 0.17.0
- Added new record types and schema variants for consolidated BBO and subsampled BBO
- Added
VolatilityandDeltaStatTypevariants
- Removed previously-deprecated
live::SymbolMap. Please usedatabento::dbn::PitSymbolMapinstead
- Improve error handling when a historical HTTP error response is not in the expected JSON format
- Documented cancellation safety of
LiveClientmethods (credit: @yongqli) - Documented
live::Subscription::startis based onts_event - Allow constructing a
DateRangeandDateTimeRangewith anendbased on atime::Duration - Implemented
DebugforLiveClient,live::ClientBuilder,HistoricalClient,historical::ClientBuilder,BatchClient,MetadataClient,SymbologyClient, andTimeseriesClient - Derived
Cloneforlive::ClientBuilderandhistorical::ClientBuilder - Added
ApiKeytype for safely derivingDebugfor types containing an API key
- Changed default
upgrade_policyinLiveBuilderandGetRangeParamstoUpgradeso by default the primary record types can always be used - Simplified
DateRangeandDateTimeRangeby removingFwdFillvariant that didn't work correctly - Upgraded DBN version to 0.16.0
- Updated
StatusMsgin preparation for status schema release - Fixed handling of
ts_outwhen upgrading DBNv1 records to version 2 - Fixed handling of
ErrorMsgV1andSystemMsgV1inrtypedispatch macros
- Updated
- Relaxed version requirements for
tokio,tokio-util, andthiserror
- Upgraded DBN version to 0.15.0
- Added support for larger
SystemMsgandErrorMsgrecords - Improved
Debugimplementations for records andRecordRef - Improved panic messages for
RecordRef::get
- Added support for larger
- Upgraded
typed-builderto 0.18
- Fixed documentation for
endinDateRange::ClosedandDateTimeRange::Closed
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.
- Made
LiveClient::next_record,dbn::decode::AsyncDbnDecoder::decode_recordanddecode_record_ref, anddbn::decode::AsyncRecordDecoder::decodeanddecode_refcancel safe. This makes them safe to use within atokio::select!statement - Improved error reporting for
HistoricalClientwhen receiving an error from Databento's API - Improved error messages around API keys
- Improved performance of CSV and JSON encoding
- Added support for emitting warnings from historical API response headers, such as for future deprecations
- Added
symbol_mapmethod to theResolutionstruct returned bysymbology::resolvethat returns aTsSymbolMap - Added
PartialEqandEqimplementations for parameter builder classes - Added
upgrade_policysetter to theLiveClientbuilder and a getter to theLiveClient - Added
upgrade_policyoptional setter to thetimeseries::GetRangeParamsbuilder
- Upgraded
dbnto 0.14.2. There are several breaking changes in this release as we begin migrating to DBN encoding version 2 (DBNv2) in order to support the ICE exchange:- Renamed
dbn::InstrumentDefMsgtodbn::compat::InstrumentDefMsgV1and added a newdbn::InstrumentDefMsgwith a longerraw_symbolfield - Renamed
dbn::SymbolMappingMsgtodbn::compat::SymbolMappingMsgV1and added a newdbn::SymbolMappingMsgwith longer symbol fields and newstype_inandstype_outfields - Added
symbol_cstr_lenfield todbn::Metadata
- Renamed
- Made
Errornon-exhaustive, meaning it no longer be exhaustively matched against, and new variants can be added in the future without a breaking change - Added an
upgrade_policyparameter toLiveClient::connectandconnect_with_addr. The builder provides a more stable API since new parameters are usually introduced as optional
- Deprecated
live::SymbolMapin favor ofdatabento::dbn::PitSymbolMap
- Upgraded
dbnto 0.13.0 for improvements to symbology helpers - Upgraded
tokioto 1.33 - Upgraded
typed-builderto 0.17
- Fixed panic in
LiveClientwhen gateway returned an auth response without thesuccesskey
- Added support for changing datetime format used in batch job responses
- Upgraded
dbnto 0.11.1
- Added
pretty_pxoption forbatch::submit_job, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_tsoption forbatch::submit_job, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbolsoption tobatch::submit_job, 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 forbatch::submit_job, which will split files by raw symbol - Added
encodingoption tobatch::submit_jobto allow requesting non-DBN encoded data through the client - Added
map_symbols,pretty_px, andpretty_tstoBatchJobresponse - Added default
stype_inofRawSymbolfor live subscriptions to match behavior of the historical client and the Python client
- Added
SymbolMaptype to help maintain up-to-date symbol mappings with live data - Added chunking to handle subscribing to many symbols for the Live client
- Upgraded DBN version to 0.10.2 for easier historical symbology
- Upgraded DBN version to 0.9.0 for publisher improvements to support OPRA
- Changed
metadata::list_publishersto return aVec<PublisherDetail> metadata::list_fields:- Changed return type to
Vec<FieldDetail> - Made
encodingandschemaparameters required - Removed
datasetparameter
- Changed return type to
metadata::list_unit_prices:- Changed return type to
Vec<UnitPricesForMode> - Made
datasetparameter required - Removed
modeandschemaparameters
- Changed return type to
- Initial release with support for historical and live data