Skip to content

WickraStreaming-first technical indicators.

514 indicators with a Rust core, native Python, Node.js, WASM + C ABI hub → C, C++, C#, Go, Java, R. Same code for backtest and live tick. Install-free.

Wickra

Install in 30 seconds ​

pip install wickra

A streaming RSI in every language ​

import wickra as ta

rsi = ta.RSI(14)
for price in live_feed:
    v = rsi.update(price)
    if v is not None and v > 70:
        print('overbought', v)

Requirements ​

The minimum supported version per language — prebuilt packages need only the runtime; building a binding from source needs the extra toolchain noted below.

LanguagePackageMinimum supported
Rustcrates.io · wickra1.86 (MSRV)
PythonPyPI · wickra (abi3 wheel)3.9 (tested through 3.13)
Node.jsnpm · wickra (N-API 8)22 (tested on 22 · 24 LTS)
WASMnpm · wickra-wasmany modern JS engine
Cwickra.h + libraryC99 compiler
C++wickra.hpp over the C ABIC++14 compiler
C#NuGet · Wickra.NET 8
Gomodule · wickra-lib/wickra-goGo 1.23 (cgo)
JavaMaven Central · org.wickra:wickraJava 22 (FFM / Panama)
Rsource packageR ≥ 4.1 (Rtools on Win.)

Go (cgo) and R need a C compiler; Java runs with --enable-native-access. Full detail — runtime vs. build-from-source, per-language notes — is on the Requirements page in the docs.

Why streaming-first matters ​

A batch-only library recomputes its full indicator over every historical bar each time a new tick arrives. With a 5 000-bar history that's 5 001 work instead of 1. Wickra holds the indicator state in a struct and advances it by one update per tick — the cost stays flat as your history grows.

Library scenarioCost per tick (5 000-bar history)
Wickra (streaming RSI(14))0.061 µs ⚡
talipp (streaming RSI(14))0.95 µs (16× slower)
TA-Lib (re-batch RSI(14))298 µs (≈ 4 900× slower at this size)

The streaming gap widens linearly with history length — see the benchmark page for the full table.

How the benchmark is measured ​

The per-tick numbers come from the same compare_libraries script the benchmark page runs: each library is handed an identical generated price series, warmed up over 5 000 bars, and then timed advancing one tick at a time. The Wickra figure is measured through the Python binding, so the small PyO3 boundary cost is already included rather than hidden in the bare Rust kernel. Reproduced on a Windows 11 / AMD Ryzen 9 9950X machine with Rust 1.92 in release profile — read the values as relative speedups on identical input, not as an absolute performance contract, since CPU, memory clock, and runtime versions all move the absolutes.

Who streaming-first is for ​

The same indicator object serves three workflows without a code change. For live trading, the optional Binance Spot WebSocket adapter pushes ticks straight into an indicator that updates in constant time, so per-tick latency stays flat even after a session has run for hours. For backtesting, you can replay a full history through that very same struct and trust that batch and streaming produce identical output — the equivalence is pinned by reference-value tests. For research, the Rust core and the Python, Node.js, WASM, C, C++, C#, Go, Java and R bindings all share one implementation, so a notebook prototype and a production service compute the exact same numbers.

The Wickra ecosystem ​

Wickra is the core of a family of twenty-three products, one repository each under wickra-lib. Every one of them is a Rust core with a CLI and the same ten-language binding surface as the core — released to the same registries from one pipeline, and checked byte-for-byte across all ten languages by a golden corpus in every repository. Each product installs by its own name (pip install wickra-<name>, npm install wickra-<name>, cargo install wickra-<name>, …) and has its own site.

Data — market data in, market data replayed, market data synthesised ​

ProductWhat it does
ExchangeOne trading interface across the ten largest venues — spot, futures, private user-data streams, with paper and replay execution.
SynthDeterministic synthetic market microstructure — OHLCV, order book, trades and funding from a single seed.
Time MachineScrub the whole market like a video: every symbol, full order book, rewound to any moment by deterministic re-fold.
GenomeA vector database of the whole market — every asset a 514-dimensional live vector, for similarity search, clustering and anomaly detection.
Feature StoreOHLCV and microstructure streams into ML-ready feature matrices over the 514 O(1) streaming indicators.

Research — backtest, screen, search, train ​

ProductWhat it does
BacktestStreaming-native, event-driven backtester where a backtest and a live run over the same JSON spec are byte-identical.
ScreenerScan thousands of symbols in parallel against a JSON condition tree over 514 streaming indicators.
DarwinEvolutionary strategy search at millions of backtests per second, mutating and crossing JSON specs across the 514-indicator space.
GymA Gymnasium-compatible, microstructure-aware backtest environment with O(1) steps for deterministic RL rollouts.
ImpactThe backtester that knows you would have moved the market — agent-based fills on the real historical L2 order book.

Trust — prove, verify, benchmark and gate what a backtest claims ​

ProductWhat it does
VerifyConfirm or refute a claimed backtest report against its strategy and data, in ten languages.
ProofProof-of-Backtest: a deterministic (spec, data) → report + blake3 hash, recomputable byte-for-byte in ten languages.
ZKProve a backtest zero-knowledge — on-chain-verifiable performance without revealing the data or the strategy.
Strategy-CIJest for trading strategies: golden-pin the report, catch regressions in CI, property-test against fuzzed data.
BenchmarkA reproducible, golden-verified benchmark suite — recompute any (strategy, dataset, report) in ten languages and confirm it byte-for-byte.

Surface — what a trader looks at and talks to ​

ProductWhat it does
TerminalA streaming trading terminal with a native TUI and a Web renderer sharing one data-driven core.
X-RayA free explorer for market microstructure — footprint, order-book heatmap, liquidation map, funding/OI divergence.
RadarReal-time derivatives signal scanner over a JSON RadarSpec — OI delta, funding flips, book imbalance, liquidations.
CopilotA local market copilot grounded in real order-book, liquidation and funding microstructure — LLM-agnostic, offline-first.
ShazamMatch an asset's current microstructure fingerprint against its entire history — cosine, Euclidean or DTW similarity.

Edge — the core compiled for the browser, the binary, the chip ​

ProductWhat it does
CompileCompile a strategy spec into a standalone deployable — a WASM module, a self-contained binary, or a no_std artifact.
EmbedAllocation-free, no_std streaming indicators for bare-metal and HFT, byte-for-byte identical to the core.
PicoThe O(1) indicator core running bare-metal on a $5 Raspberry Pi Pico — the LED blinks on the EMA cross.

Try it without installing anything: all 514 indicators over a real Binance feed at live.wickra.org, the backtester compiled to WebAssembly at backtest-live.wickra.org, and one strategy spec side by side in Python, Rust, JS and Go at playground.wickra.org — zero backend, all of them.

The full indicator catalogue ​

514 indicators across twenty-four families. Every one is implemented once in Rust, re-exported by every binding, and pinned by reference-value tests.

FamilyExamples
Moving AveragesSMA, EMA, WMA, DEMA, TEMA, HMA, KAMA, SMMA, TRIMA, ZLEMA, T3, VWMA
Momentum OscillatorsRSI (Wilder), Stochastic, CCI, ROC, Williams %R, MFI, AO, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator
Trend & DirectionalMACD, ADX (+DI/-DI), Aroon, TRIX, Aroon Osc, Vortex, Mass Index, Choppiness Index, Vertical Horizontal Filter
Price OscillatorsPPO, DPO, Coppock, Accelerator, Balance of Power
Volatility & BandsATR, Bollinger Bands, Keltner, Donchian, NATR, StdDev, Ulcer Index, Historical Volatility, BB Width, %B, True Range, Chaikin Volatility
Trailing StopsParabolic SAR, SuperTrend, Chandelier Exit, Chande Kroll Stop, ATR Trailing Stop
VolumeOBV, VWAP (cumulative + rolling), ADL, VPT, CMF, Chaikin Osc, Force Index, Ease of Movement
Price StatisticsTypical Price, Median Price, Weighted Close, Linear Regression, LR Slope, Z-Score, LR Angle

See the full per-indicator deep-dives in the docs →