Skip to content

Commit a1fd5f6

Browse files
userFRMclaude
andcommitted
v4.1.0: close Java parity gaps, DNS fix, class mapping
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6da6bc0 commit a1fd5f6

9 files changed

Lines changed: 32 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [4.1.0] - 2026-04-01
9+
10+
### Added
11+
12+
- `subscribe_full_open_interest(sec_type)` -- firehose open interest subscription (was missing, Java terminal has it)
13+
- `unsubscribe_full_trades(sec_type)` -- firehose trade unsubscribe (was missing)
14+
- `unsubscribe_full_open_interest(sec_type)` -- firehose OI unsubscribe (was missing)
15+
- `reconnect_streaming(handler)` on `ThetaDataDx` -- saves active subscriptions, stops streaming, restarts with new handler, re-subscribes all per-contract and full-type subscriptions automatically
16+
- `active_full_subscriptions()` accessor for full-type subscription tracking
17+
- `docs/java-class-mapping.md` -- complete enumeration of all 588 Java terminal classes with Rust equivalents or justification for exclusion
18+
19+
### Fixed
20+
21+
- DNS hostname resolution in FPSS connection -- `SocketAddr::parse()` replaced with `ToSocketAddrs` to resolve hostnames like `nj-a.thetadata.us` (was silently failing)
22+
23+
### Documented
24+
25+
- Greeks operator precedence (veta, speed, zomma, color, dual_gamma) -- Java decompiler may have lost parenthesization, Rust follows textbook Black-Scholes formulas
26+
- FPSS ring buffer capacity monitoring -- documented as known limitation (disruptor-rs v4 has no fill-level API)
27+
828
## [4.0.0] - 2026-04-01
929

1030
### Breaking Changes
@@ -420,7 +440,8 @@ See [TODO.md](TODO.md) for the production readiness checklist and performance ro
420440
- FIT decoder uses i64 accumulator with i32 saturation (no silent overflow)
421441
- Price type range enforced with `assert!` in release builds
422442

423-
[Unreleased]: https://github.com/userFRM/ThetaDataDx/compare/v4.0.0...HEAD
443+
[Unreleased]: https://github.com/userFRM/ThetaDataDx/compare/v4.1.0...HEAD
444+
[4.1.0]: https://github.com/userFRM/ThetaDataDx/compare/v4.0.0...v4.1.0
424445
[4.0.0]: https://github.com/userFRM/ThetaDataDx/compare/v3.2.2...v4.0.0
425446
[3.2.2]: https://github.com/userFRM/ThetaDataDx/compare/v3.2.0...v3.2.2
426447
[3.2.0]: https://github.com/userFRM/ThetaDataDx/compare/v3.1.0...v3.2.0

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/thetadatadx/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "thetadatadx"
3-
version = "4.0.0"
3+
version = "4.1.0"
44
edition = "2021"
55
rust-version = "1.85"
66
authors = ["userFRM"]

ffi/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "thetadatadx-ffi"
3-
version = "4.0.0"
3+
version = "4.1.0"
44
edition = "2021"
55
description = "C FFI layer for thetadatadx — used by Go and C++ SDKs"
66
license = "GPL-3.0-or-later"

sdks/python/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "thetadatadx-py"
3-
version = "4.0.0"
3+
version = "4.1.0"
44
edition = "2021"
55
description = "Python bindings for thetadatadx — native ThetaData SDK powered by Rust"
66

sdks/python/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "thetadatadx"
7-
version = "4.0.0"
7+
version = "4.1.0"
88
description = "No-JVM ThetaData Terminal — native Rust SDK for direct market data access (Python bindings)"
99
readme = "README.md"
1010
requires-python = ">=3.9"

tools/cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "thetadatadx-cli"
3-
version = "4.0.0"
3+
version = "4.1.0"
44
edition = "2021"
55
description = "CLI for ThetaDataDx — query ThetaData from your terminal"
66
license = "GPL-3.0-or-later"

tools/mcp/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "thetadatadx-mcp"
3-
version = "4.0.0"
3+
version = "4.1.0"
44
edition = "2021"
55
description = "MCP server for ThetaDataDx — gives LLMs instant access to ThetaData market data"
66
license = "GPL-3.0-or-later"

tools/server/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "thetadatadx-server"
3-
version = "4.0.0"
3+
version = "4.1.0"
44
edition = "2021"
55
rust-version = "1.85"
66
authors = ["userFRM"]

0 commit comments

Comments
 (0)