2d776b6f90
Align the Rust, Python, WASM, Conda, docs, and lockfile version markers to 1.0.6 so the published artifacts and release automation agree on a single release number. Add a proper 1.0.6 changelog entry in both CHANGELOG.md and the docs release notes, covering the pre-push gate, expanded Rust and WASM surface, benchmark refresh, and CI hardening work shipped since v1.0.4. Validate the release preparation with the repo-managed pre-push suite so version, changelog, Rust, Python, docs, WASM, and API-manifest checks all pass before tagging.
ferro_ta_core
ferro_ta_core is the pure Rust indicator engine behind ferro-ta.
It provides allocation-friendly indicator functions over &[f64] slices without any
PyO3, NumPy, or Python runtime dependency, which makes it a good fit for:
- Rust-native technical analysis workloads
- custom services and backtesting engines
- future non-Python bindings such as WASM and other FFI layers
Installation
[dependencies]
ferro_ta_core = "1.0.6"
Design
- Pure functions over Rust slices
- No Python or NumPy dependency
- Shared core for the Python package and WASM bindings
- Output shape matches TA-Lib-style full-length series with
NaNwarm-up values where applicable
Modules
overlap- moving averages, MACD, Bollinger Bandsmomentum- RSI, MOMvolatility- ATR, TRANGEvolume- OBVstatistic- STDDEVmath- rolling SUM/MAX/MIN helpers
Example
use ferro_ta_core::overlap;
fn main() {
let close = vec![1.0, 2.0, 3.0, 4.0, 5.0];
let sma = overlap::sma(&close, 3);
assert!(sma[0].is_nan());
assert!(sma[1].is_nan());
assert!((sma[2] - 2.0).abs() < 1e-10);
}
Relationship To ferro-ta
The published Python package:
- crate:
ferro_ta - PyPI package:
ferro-ta
wraps this crate with PyO3 bindings and adds:
- NumPy conversion
- pandas/polars wrappers
- streaming classes
- batch helpers
- higher-level Python tooling
If you only need Rust indicator functions, use ferro_ta_core directly.
Development
From the repository root:
cargo build -p ferro_ta_core
cargo test -p ferro_ta_core
cargo bench -p ferro_ta_core --no-run
License
MIT