ferro-ta Documentation

Overview

ferro-ta is a Rust-core technical analysis library with first-class bindings for Python, Rust, JavaScript (WASM), and Flutter.

Python, JavaScript (WASM), and Flutter wrap ferro_ta_core; Rust exposes that crate directly. Python is the most complete ergonomic surface (TA-Lib names, pandas/polars, Sphinx autodoc). It is not the only product. New languages may only wrap the Rust core — see Adding a language binding.

Important

Performance varies by indicator, array layout, warmup, build flags, and machine. ferro-ta is often faster on selected indicators, not universally faster. See Benchmarks for the reproducible workflow, methodology notes, and the indicators where TA-Lib still wins or ties in the current checked-in artifact.

Shared core:

  • 160+ indicators covering all TA-Lib categories

  • Pure Rust compute in crates/ferro_ta_core — no Python, NumPy, or JS dependency

  • First-class packages: PyPI ferro-ta, crates.io ferro_ta_core, npm ferro-ta-wasm, pub.dev ferro_ta

  • Batch execution and streaming / bar-by-bar APIs on the surfaces that expose them

  • 10 extended indicators not in TA-Lib (VWAP, Supertrend, Ichimoku Cloud, …)

Python-only ergonomics:

  • TA-Lib-style imports such as ferro_ta.SMA(close, timeperiod=20)

  • Pre-built wheels for the supported Python/OS matrix

  • Transparent pandas.Series / polars.Series support

  • Type stubs (.pyi) and Sphinx autodoc under API Reference

Adjacent tooling (not language bindings):

Installation

Pick a language. Full examples live on the language pages.

Language

Install

Python

pip install ferro-ta

Rust

cargo add ferro_ta_core

JavaScript (WASM)

npm install ferro-ta-wasm

Flutter / Dart

flutter pub add ferro_ta

Quick Start

import numpy as np
from ferro_ta import SMA, RSI, MACD, BBANDS

close = np.linspace(44.0, 48.0, 40)
print(SMA(close, timeperiod=5))
print(RSI(close, timeperiod=14))
macd_line, signal, hist = MACD(close)
upper, middle, lower = BBANDS(close, timeperiod=5)

See Quick Start for Rust, JavaScript, and Flutter snippets, or jump straight to Python, Rust, JavaScript / WASM, or Flutter / Dart.

Further Reading

Indices and tables