release: cut v1.0.1

Prepare the first patch release after v1.0.0 by finalizing the outstanding release, packaging, and workflow fixes.

This release keeps PyPI and crates.io publishing anchored to CI.yml, splits the large CI workflow into focused rust/python/wasm/docs suites, fixes the ci-complete gate, and updates the release SBOM action pin.

It also switches the npm publish workflow to GitHub OIDC, installs the wasm32 target required for packaging, ensures the WASM npm tarball includes pkg/ artifacts during prepack, and adds a dedicated README plus docs.rs metadata for ferro_ta_core.

Finally, bump all published package versions to 1.0.1 and record the patch release notes in CHANGELOG.md.
This commit is contained in:
Pratik Bhadane
2026-03-24 00:38:50 +05:30
parent 307beeca02
commit 682bf063ca
13 changed files with 482 additions and 338 deletions
+3 -2
View File
@@ -1,12 +1,13 @@
[package]
name = "ferro_ta_core"
version = "1.0.0"
version = "1.0.1"
edition = "2021"
description = "Pure Rust core indicator library — no PyO3, no numpy dependency"
license = "MIT"
readme = "README.md"
repository = "https://github.com/pratikbhadane24/ferro-ta"
homepage = "https://github.com/pratikbhadane24/ferro-ta#readme"
documentation = "https://github.com/pratikbhadane24/ferro-ta#readme"
documentation = "https://docs.rs/ferro_ta_core"
keywords = ["technical-analysis", "trading", "indicators", "finance", "ta-lib"]
categories = ["finance", "mathematics"]
+79
View File
@@ -0,0 +1,79 @@
# ferro_ta_core
`ferro_ta_core` is the pure Rust indicator engine behind [`ferro-ta`](https://github.com/pratikbhadane24/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
```toml
[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
```rust
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:
```bash
cargo build -p ferro_ta_core
cargo test -p ferro_ta_core
cargo bench -p ferro_ta_core --no-run
```
## License
MIT