v0.2.0
The performance release. Bulk downloads are dramatically faster, streaming is far lighter on CPU, and the last SDK-invented surface is gone so Dx matches the terminal 1:1.
Highlights
- Bulk-download throughput. 8 MB HTTP/2 windows (#1204) plus automatic sharding of large history pulls across your tier's concurrency (#1206), up to ~5.6x on Pro on a full-day options chain, with no call-site change.
- Streaming wait mode (#1208, closes #1207).
spin/busyspin/park/backoff;backoffkeeps low latency while data flows and drops to a few percent of a core when the market is quiet, fixing the 100%-idle-CPU busy-spin. - Terminal-parity cleanup. Removed the
midpointandis_openderived columns,flush_mode,host_selection, tworeconnect_jittervariants, interval snapping, and client-side list re-sorting. - More config-file coverage.
bulk_fetch,shard_concurrency, and the market-data timeout and buffered-warn knobs are now settable in the[market_data]TOML section. - Rust builds need no protoc. The crate ships its committed gRPC snapshot and only regenerates under the
grpc-codegenfeature.
Breaking changes
Breaking configuration-surface changes (config renames, removed derived columns). Each has a one-line migration note in CHANGELOG.md.
Install
pip install -U thetadatadx-py
npm install thetadatadx-ts@latest
cargo add thetadatadx-rs
Thanks
@aukaost for the throughput architecture: the 8 MB window and the concurrency-sharding design behind these speedups. @zakissimo for the idle-CPU report that drove the wait-mode work. And everyone running Dx in production and filing feedback.