7a589c725f
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.1.0"
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