- Upgraded DBN version to 0.25.0:
- Added
v1
andv2
namespaces 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 onMetadataBuilder
to accept animpl ToString
so nowDataset
and&str
can 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
thiserror
version to 2.0
- Removed deprecated
Packaging
enum andpackaging
field that's no longer supported by the API - As part of the DBN version upgrade:
VersionUpgradePolicy::Upgrade
was 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
thiserror
version to 2.0
- Deprecated
Packaging
enum andpackaging
field onSubmitJobParams
andBatchJob
. 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
None
Action
variant that will be gradually rolled out to historical and liveGLBX.MDP3
data - Added consistent escaping of non-printable and non-ASCII values when text encoding
c_char
fields - Implemented
Default
forAction
andSide
- Implemented missing
Serialize
for (withserde
feature enabled) forVenue
,Dataset
,Publisher
,Compression
,SType
,Schema
, andEncoding
- Added new
- Upgraded DBN version to 0.22.1:
- Fixed buffer overrun
- Combined
_reserved3
andreserved4
fields inCbboMsg
- Made several previously internal functions public to allow advanced users more
customization and piecemeal usage of the live API:
ApiKey
Symbols::to_chunked_api_string()
live::protocol
module containing implementations of the raw API messages
- Changed from
log
crate totracing
for better diagnostics
- Upgraded DBN version to 0.21.0 for:
- Changed the layout of
CbboMsg
to better matchBboMsg
- Renamed
Schema::Cbbo
toSchema::Cmbp1
- Changed the layout of
- Upgraded
typed-builder
version 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
Intraday
variant toDatasetCondition
in preparation for intraday data being available from the historical API - Upgraded DBN version to 0.20.1 for new publisher values for
XCIS.BBOTRADES
andXNYS.BBOTRADES
- Upgraded DBN version to 0.20.0:
- Renamed
SType::Nasdaq
variant toSType::NasdaqSymbol
- Renamed
SType::Cms
variant toSType::CmsSymbol
- Renamed
- Upgraded DBN version to 0.19.1 with fixes for
BBOMsg
record struct
- Upgraded DBN version to 0.19.0 with new
BBOMsg
record struct
- Added
historical::timeseries::get_range_to_file
method to persist the data stream to a given path before returning anAsyncDbnDecoder
- Upgraded DBN version to 0.18.2
- Added getter for
heartbeat_interval
toLiveClient
- Fixed potential incorrect DNS resolution when overriding the live gateway address
with
live::Builder::addr
- Added configurable
heartbeat_interval
parameter for live client that determines the timeout before heartbeatSystemMsg
records will be sent. It can be configured via theheartbeat_interval
andheartbeat_interval_s
methods of thelive::ClientBuilder
- Added
addr
function tolive::ClientBuilder
for configuring a custom gateway address without usingLiveClient::connect_with_addr
directly - Upgraded DBN version to 0.18.1
- Added
heartbeat_interval
parameter toLiveClient::connect
andLiveClient::connect_with_addr
- Removed deprecated
start_date
andend_date
fields fromDatasetRange
struct
- Added
use_snapshot
attribute toSubscription
, defaults to false - Upgraded reqwest version to 0.12
- Upgraded DBN version to 0.18.0
- Changed type of
flags
inMboMsg
,TradeMsg
,Mbp1Msg
,Mbp10Msg
, andCbboMsg
fromu8
to a newFlagSet
type with predicate methods for the various bit flags as well as setters. Theu8
value can still be obtained by calling theraw()
method- Improved
Debug
formatting
- Improved
- Switched
DecodeStream
fromstreaming_iterator
crate tofallible_streaming_iterator
to allow better notification of errors - Changed default value for
stype_in
andstype_out
inSymbolMappingMsg
tou8::MAX
to match C++ client and to reflect an unknown value. This also changes the value of these fields when upgrading aSymbolMappingMsgV1
to DBNv2
- Changed type of
- Fixed build when only
live
feature is enabled
- Added
start
andend
fields to theDatasetRange
struct which provide time resolution and an exclusive end date - Upgraded DBN version to 0.17.1
- The
start_date
andend_date
fields of theDatasetRange
struct 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
Volatility
andDelta
StatType
variants
- Removed previously-deprecated
live::SymbolMap
. Please usedatabento::dbn::PitSymbolMap
instead
- Improve error handling when a historical HTTP error response is not in the expected JSON format
- Document cancellation safety of
LiveClient
methods (credit: @yongqli) - Document
live::Subscription::start
is based onts_event
- Allow constructing a
DateRange
andDateTimeRange
with anend
based on atime::Duration
- Implemented
Debug
forLiveClient
,live::ClientBuilder
,HistoricalClient
,historical::ClientBuilder
,BatchClient
,MetadataClient
,SymbologyClient
, andTimeseriesClient
- Derived
Clone
forlive::ClientBuilder
andhistorical::ClientBuilder
- Added
ApiKey
type for safely derivingDebug
for types containing an API key
- Changed default
upgrade_policy
inLiveBuilder
andGetRangeParams
toUpgrade
so by default the primary record types can always be used - Simplified
DateRange
andDateTimeRange
by removingFwdFill
variant that didn't work correctly - Upgraded DBN version to 0.16.0
- Updated
StatusMsg
in preparation for status schema release - Fixed handling of
ts_out
when upgrading DBNv1 records to version 2 - Fixed handling of
ErrorMsgV1
andSystemMsgV1
inrtype
dispatch macros
- Updated
- Relaxed version requirements for
tokio
,tokio-util
, andthiserror
- Upgraded DBN version to 0.15.0
- Added support for larger
SystemMsg
andErrorMsg
records - Improved
Debug
implementations for records andRecordRef
- Improved panic messages for
RecordRef::get
- Added support for larger
- Upgraded
typed-builder
to 0.18
- Fixed documentation for
end
inDateRange::Closed
andDateTimeRange::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_record
anddecode_record_ref
, anddbn::decode::AsyncRecordDecoder::decode
anddecode_ref
cancel safe. This makes them safe to use within atokio::select!
statement - Improved error reporting for
HistoricalClient
when 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_map
method to theResolution
struct returned bysymbology::resolve
that returns aTsSymbolMap
- Added
PartialEq
andEq
implementations for parameter builder classes - Added
upgrade_policy
setter to theLiveClient
builder and a getter to theLiveClient
- Added
upgrade_policy
optional setter to thetimeseries::GetRangeParams
builder
- Upgraded
dbn
to 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::InstrumentDefMsg
todbn::compat::InstrumentDefMsgV1
and added a newdbn::InstrumentDefMsg
with a longerraw_symbol
field - Renamed
dbn::SymbolMappingMsg
todbn::compat::SymbolMappingMsgV1
and added a newdbn::SymbolMappingMsg
with longer symbol fields and newstype_in
andstype_out
fields - Added
symbol_cstr_len
field todbn::Metadata
- Renamed
- Made
Error
non-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_policy
parameter toLiveClient::connect
andconnect_with_addr
. The builder provides a more stable API since new parameters are usually introduced as optional
- Deprecated
live::SymbolMap
in favor ofdatabento::dbn::PitSymbolMap
- Upgraded
dbn
to 0.13.0 for improvements to symbology helpers - Upgraded
tokio
to 1.33 - Upgraded
typed-builder
to 0.17
- Fixed panic in
LiveClient
when gateway returned an auth response without thesuccess
key
- Added support for changing datetime format used in batch job responses
- Upgraded
dbn
to 0.11.1
- Added
pretty_px
option 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_ts
option forbatch::submit_job
, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbols
option 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.json
file - Added
split_symbols
option forbatch::submit_job
, which will split files by raw symbol - Added
encoding
option tobatch::submit_job
to allow requesting non-DBN encoded data through the client - Added
map_symbols
,pretty_px
, andpretty_ts
toBatchJob
response - Added default
stype_in
ofRawSymbol
for live subscriptions to match behavior of the historical client and the Python client
- Added
SymbolMap
type 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_publishers
to return aVec<PublisherDetail>
metadata::list_fields
:- Changed return type to
Vec<FieldDetail>
- Made
encoding
andschema
parameters required - Removed
dataset
parameter
- Changed return type to
metadata::list_unit_prices
:- Changed return type to
Vec<UnitPricesForMode>
- Made
dataset
parameter required - Removed
mode
andschema
parameters
- Changed return type to
- Initial release with support for historical and live data