ferro_ta_core 1.0.1

Pure Rust core indicator library — no PyO3, no numpy dependency
Documentation

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.1"

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 NaN warm-up values where applicable

Modules

  • overlap - moving averages, MACD, Bollinger Bands
  • momentum - RSI, MOM
  • volatility - ATR, TRANGE
  • volume - OBV
  • statistic - STDDEV
  • math - 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