a5fe2e71c4
Release the native data-layer bundle. `0.9.3` ships everything merged since `0.9.2`: - **Data layer in all 10 languages** — `CandleReader` (CSV), `TickAggregator`, `Resampler`, live `BinanceFeed` (WebSocket) and the historical `fetch_binance_klines` (REST), each cross-language golden-pinned. - **`name()` on every indicator** in all 10 languages (514 indicators, golden-pinned). - **Python is now zero third-party deps** — NumPy is optional (`pip install wickra[numpy]`); `batch` returns a stdlib `array.array` / buffer-protocol `Matrix` (breaking; results numerically identical, batch throughput tradeoff noted in the CHANGELOG). - **Binance feed: missing `3d` / `1M` intervals** fixed. Pure version-string bump on top — `bump_version.py` touched 19 files (Cargo + Lock, pyproject, all node package.json/locks + 6 platform stubs, pom + csproj + DESCRIPTION, SECURITY, CHANGELOG `[0.9.3]` + compare URLs). `cargo fmt`/`clippy -D warnings`/`test --workspace --all-features` all green locally (4225+ tests, 0 failed). The tag/publish is **not** part of this PR — it waits for explicit GO (irreversible publish to crates.io / PyPI / npm / NuGet / Maven / Go / r-universe).
80 lines
1.8 KiB
TOML
80 lines
1.8 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/wickra-core",
|
|
"crates/wickra",
|
|
"crates/wickra-data",
|
|
"bindings/python",
|
|
"bindings/wasm",
|
|
"bindings/node",
|
|
"bindings/c",
|
|
"examples/rust",
|
|
"crates/wickra-bench",
|
|
]
|
|
exclude = ["fuzz"]
|
|
|
|
[workspace.package]
|
|
version = "0.9.3"
|
|
authors = ["kingchenc <support@wickra.org>"]
|
|
edition = "2021"
|
|
rust-version = "1.86"
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/wickra-lib/wickra"
|
|
homepage = "https://github.com/wickra-lib/wickra"
|
|
readme = "README.md"
|
|
keywords = ["finance", "trading", "indicators", "technical-analysis", "ta"]
|
|
categories = ["finance", "mathematics", "science"]
|
|
|
|
[workspace.dependencies]
|
|
wickra-core = { path = "crates/wickra-core", version = "0.9.3" }
|
|
wickra-data = { path = "crates/wickra-data", version = "0.9.3" }
|
|
|
|
thiserror = "2"
|
|
rayon = "1.10"
|
|
|
|
# Testing
|
|
proptest = "1.5"
|
|
approx = "0.5"
|
|
criterion = { version = "0.8", features = ["html_reports"] }
|
|
|
|
# Python binding
|
|
pyo3 = { version = "0.29", features = ["extension-module", "abi3-py39"] }
|
|
numpy = "0.29"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "forbid"
|
|
missing_debug_implementations = "warn"
|
|
unreachable_pub = "warn"
|
|
unused_must_use = "deny"
|
|
|
|
[workspace.lints.clippy]
|
|
all = { level = "warn", priority = -1 }
|
|
pedantic = { level = "warn", priority = -1 }
|
|
# Pedantic exceptions for an indicator library that uses floats and small functions everywhere.
|
|
module_name_repetitions = "allow"
|
|
must_use_candidate = "allow"
|
|
missing_errors_doc = "allow"
|
|
missing_panics_doc = "allow"
|
|
cast_precision_loss = "allow"
|
|
cast_possible_truncation = "allow"
|
|
cast_sign_loss = "allow"
|
|
similar_names = "allow"
|
|
float_cmp = "allow"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
strip = true
|
|
|
|
[profile.bench]
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
debug = false
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
debug = true
|