Streaming-first technical indicators. Rust core with native Python, Node.js and WASM bindings, plus a C ABI that brings the same indicators to C, C++, C#, Go, Java and R. Every indicator is a state machine that updates in O(1) per new data point — same code for backtest and live tick.
Site: wickra.org · Docs: docs.wickra.org
import wickra as ta
rsi = ta.RSI(14)
for price in live_feed:
value = rsi.update(price) # O(1) — no recomputation over history
if value is not None and value > 70:
print("overbought")| Language | Install |
|---|---|
| Python | pip install wickra |
| Rust | cargo add wickra |
| Node.js | npm install wickra |
| Browser / WASM | npm install wickra-wasm |
| C / C++ (C ABI) | pre-built header + library from releases |
| C# | dotnet add package Wickra |
| Go (cgo) | go get github.com/wickra-lib/wickra-go |
| Java (FFM) | org.wickra:wickra on Maven Central |
R (.Call) |
install.packages("wickra", repos = "https://wickra-lib.r-universe.dev") |
No C compiler, no headers, no Rust toolchain required to install the native
packages — pre-built on every supported platform. The C ABI ships the same
way: a ready-to-link wickra.h + shared/static library per platform.
Supported versions: Rust 1.86 · Python 3.9 · Node.js 20 · WASM (any modern engine) · C99 · C++14 · .NET 8 · Go 1.23 · Java 22 · R ≥ 2.10 — see the Requirements page for the per-language detail.
- 514 indicators across twenty-four families (moving averages, momentum oscillators, trend & directional, price oscillators, volatility & bands, bands & channels, trailing stops, volume, price statistics, Ehlers / cycle DSP, pivots & S/R, DeMark, Ichimoku & charts, alt-chart bars, candlestick patterns, chart patterns, harmonic patterns, Fibonacci, microstructure, derivatives, market profile, market breadth, risk / performance, seasonality & session)
- Zero third-party dependencies, in every language —
pip install wickra/npm install wickra/ … pull nothing else (not even NumPy), and a complete native data layer (CSV reader, tick aggregator, resampler, live Binance WebSocket feed, historical REST fetcher) ships in the box — no pandas,ws,jacksonorjsonlite batch == streamingequivalence — every indicator passes a bit-for-bit test that streaming results match batch results- Identical across all 10 languages — proven, not promised — every one of the 514 indicators is replayed through Rust, Python, Node.js, WASM, C, C++, C#, Go, Java and R and checked bit-for-bit against the Rust reference (golden fixtures, in CI)
- Orders of magnitude faster in streaming — O(1) per-tick updates run 11–56× faster than the only other incremental peer and thousands of times faster than recompute-on-every-tick libraries (benchmarks)
- Rust core forbids
unsafe— every binding inherits a memory-safe implementation - Verified against reference values from TA-Lib and Wilder's original tables
- wickra — main library (Rust core + Python / Node.js / WASM bindings + a C ABI for C / C++ / C# / Go / Java / R)
- wickra-docs — documentation site, live at docs.wickra.org: per-indicator deep-dives (formulas, parameters, warmup), quickstarts and migration guides
- webpage — marketing site, live at wickra.org: landing page, live in-browser WASM demo, benchmarks, and per-language API overviews
Dual-licensed under MIT or Apache-2.0 — OSI-approved, permissive open source, free for any use including commercial.
