Skip to content

Commit d4e8a14

Browse files
authored
Merge pull request #76 from userFRM/release/v5.0.0
release: v5.0.0
2 parents f59dc98 + c52a8fd commit d4e8a14

12 files changed

Lines changed: 46 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,37 @@ 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+
## [5.0.0] - 2026-04-02
9+
10+
### Breaking Changes
11+
12+
- **Builder pattern on all 61 endpoints** -- methods return builders with `IntoFuture`. `start_time`/`end_time` are now builder methods, not positional params. All optional proto params exposed as chainable setters.
13+
- `received_at_ns: u64` added to every `FpssData` variant (Quote, Trade, OpenInterest, Ohlcvc)
14+
- `DirectConfig::dev()` now uses actual ThetaData dev FPSS servers (port 20200, infinite replay) instead of production with reduced buffers
15+
16+
### Added
17+
18+
- **Builder pattern** -- all endpoints return chainable builders. Zero noise for simple calls, all optional proto params discoverable via autocomplete.
19+
- **`received_at_ns`** -- nanosecond receive timestamp on every FPSS event for latency measurement
20+
- **`tdbe::latency::latency_ns()`** -- DST-aware wire-to-application latency computation
21+
- **`FpssFlushMode`** -- `Batched` (default, matches Java) or `Immediate` (lowest latency)
22+
- **Metrics** -- `metrics` crate integration. Counters/histograms on all gRPC, FPSS, and auth operations. Zero overhead when no backend installed.
23+
- **Config file** -- `DirectConfig::from_file()` behind `config-file` feature flag. TOML format matching v3 terminal.
24+
- **`DirectConfig::stage()`** -- staging FPSS servers (port 20100)
25+
- **3 FPSS methods** in all SDKs -- `subscribe_full_open_interest`, `unsubscribe_full_trades`, `unsubscribe_full_open_interest`
26+
- **Cross-platform CI** -- Format, Lint, Test, FFI Build on Ubuntu + macOS + Windows
27+
- **Macro guide** -- `docs/macro-guide.md` for contributors
28+
- **DST pre-2007 safety net** -- handles old US DST rules (April-October) for pre-2007 dates
29+
- **`unsubscribe_option_open_interest`** in Python SDK (was missing)
30+
- **Go `FpssClient`** -- complete standalone streaming client wrapper (`sdks/go/fpss.go`)
31+
32+
### Fixed
33+
34+
- 30 documentation findings from production audit (version pins, method tables, CHANGELOG, SECURITY)
35+
- 14 public methods missing doc comments on `ThetaDataDx`
36+
- Python SDK `lock().unwrap()` changed to poison recovery
37+
- Legacy `config.default.properties` removed (v2 artifact)
38+
839
## [4.5.0] - 2026-04-02
940

1041
### Breaking Changes
@@ -504,7 +535,8 @@ See [TODO.md](TODO.md) for the production readiness checklist and performance ro
504535
- FIT decoder uses i64 accumulator with i32 saturation (no silent overflow)
505536
- Price type range enforced with `assert!` in release builds
506537

507-
[Unreleased]: https://github.com/userFRM/ThetaDataDx/compare/v4.5.0...HEAD
538+
[Unreleased]: https://github.com/userFRM/ThetaDataDx/compare/v5.0.0...HEAD
539+
[5.0.0]: https://github.com/userFRM/ThetaDataDx/compare/v4.5.0...v5.0.0
508540
[4.5.0]: https://github.com/userFRM/ThetaDataDx/compare/v4.4.0...v4.5.0
509541
[4.4.0]: https://github.com/userFRM/ThetaDataDx/compare/v4.3.0...v4.4.0
510542
[4.3.0]: https://github.com/userFRM/ThetaDataDx/compare/v4.2.0...v4.3.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.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ No-JVM ThetaData Terminal - native Rust SDK for direct market data access.
4444

4545
```toml
4646
[dependencies]
47-
thetadatadx = "4.5"
47+
thetadatadx = "5.0"
4848
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
4949
```
5050

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.5.0"
3+
version = "5.0.0"
44
edition = "2021"
55
rust-version = "1.85"
66
authors = ["userFRM"]

docs-site/docs/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: Install ThetaDataDx, configure credentials, and run your first quer
1111
```toml [Rust]
1212
# Add to your Cargo.toml
1313
[dependencies]
14-
thetadatadx = "4.5"
14+
thetadatadx = "5.0"
1515
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
1616
```
1717
```bash [Python]

docs-site/docs/getting-started/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: Install ThetaDataDx for Rust, Python, Go, or C++.
1111
```toml [Rust]
1212
# Add to your Cargo.toml
1313
[dependencies]
14-
thetadatadx = "4.5"
14+
thetadatadx = "5.0"
1515
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
1616
```
1717
```bash [Python]

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.5.0"
3+
version = "5.0.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.5.0"
3+
version = "5.0.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.5.0"
7+
version = "5.0.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.5.0"
3+
version = "5.0.0"
44
edition = "2021"
55
description = "CLI for ThetaDataDx — query ThetaData from your terminal"
66
license = "GPL-3.0-or-later"

0 commit comments

Comments
 (0)