Languages

ferro-ta is one library: ferro_ta_core holds every indicator algorithm. Rust exposes that crate directly; Python, JavaScript (WASM), Flutter, and Go wrap it. Go and C/C++ share one C ABI crate, ferro_ta_ffi, which future C-ABI languages (C#, JVM, Ruby, …) build on.

Language

Package

Compute

Guide

Python

PyPI ferro-ta

PyO3 → ferro_ta_core

Python

Rust

crates.io ferro_ta_core

Direct &[f64] API

Rust

JavaScript

npm ferro-ta-wasm

wasm-bindgen → core

JavaScript / WASM

Flutter / Dart

pub.dev ferro_ta

flutter_rust_bridge → core; web reuses WASM

Flutter / Dart

Go

github.com/pratikbhadane24/ferro-ta/bindings/go

cgo → ferro_ta_ffi C ABI → core

Go

C / C++

GitHub Release assets

ferro_ta.h → ferro_ta_ffi → core

C / C++ (C ABI)

Python keeps the richest ergonomic surface (TA-Lib names, pandas/polars, Sphinx autodoc). Indicator coverage is not identical on every binding — check Cross-language coverage before claiming parity.

Hard rule

A new language may only wrap ferro_ta_core (FFI, wasm-bindgen, UniFFI, flutter_rust_bridge, napi-rs, and similar). Reimplementing indicators in the new language is out of scope. See Adding a language binding.