Wickra
Streaming-first technical indicators with a Rust core and Python, Node.js, WebAssembly, C ABI, .NET, Go, Java, and R bindings. 514 indicators, O(1) per-tick updates, no system dependencies. Drop-in TA-Lib replacement.
Install / Use
npx skills add wickra-lib/wickraInstalls into whichever agent you are using.
README
Streaming-first technical indicators. Install with pip install wickra — no system dependencies, zero third-party packages.
▶ Live demo: all 514 indicators over real Binance market data, computed live in your browser — live.wickra.org · zero backend, powered by
wickra-wasm.
Part of the Wickra ecosystem: the same data-driven core and ten-language binding surface also power wickra-exchange, wickra-backtest, wickra-terminal, wickra-screener, wickra-xray, wickra-radar, wickra-copilot and wickra-shazam.
Wickra is a multi-language technical-analysis library with a Rust core and native bindings for Python, Node.js and WASM, plus a C ABI that C, C++, C#, Go, Java, R and any other C-capable language links against. Every indicator is a state machine that updates in O(1) per new data point, so live trading bots and historical backtests share the exact same implementation.
import wickra as ta # zero third-party deps — not even NumPy
# Batch: classic TA-Lib-style usage
prices = [100.0 + i * 0.1 for i in range(1000)]
rsi = ta.RSI(14)
values = rsi.batch(prices) # array.array('d'), NaN during warmup
# np.asarray(values) wraps it zero-copy if you use NumPy
# Streaming: same indicator, fed tick by tick
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")
Documentation
Full documentation lives at docs.wickra.org:
- Quickstarts — Rust, Python, Node, WASM, C, C++, C#, Go, Java, R.
- Indicators — a per-indicator deep dive (formula, parameters, warmup) for every one of the 514 indicators; start at the indicators overview.
- Reference — warmup periods, streaming vs batch, indicator chaining, the data layer.
- Guides — Cookbook, TA-Lib migration, FAQ.
Why Wickra
Most TA libraries are fast, or multi-language, or broad. Wickra refuses to pick. It's the streaming-first engine built for the workload the others treat as an afterthought — live, tick-by-tick data — without giving up the breadth of a full batch library, and without making you reimplement your indicators four times to get there.
- The biggest streaming-native catalogue, period. 514 indicators across 24 families — candlesticks, harmonic & chart patterns, market profile, market breadth, Renko/Kagi/Point&Figure bars, Ehlers DSP cycles, risk/performance metrics — every single one updating in O(1) per tick. TA-Lib ships ~150 and none of them stream.
- One Rust core, five first-class targets. Native Rust · Python · Node.js · WASM plus a C ABI for C, C++, C#, Go, Java, R and any other C-capable language — identical math, identical results, zero per-language reimplementation and zero GIL bottleneck.
- Correct by construction, not by hope. Every
updatevalidates its input, runs a real warmup, and returns anOptionso a single bad tick can't silently poison state.batch == streamingis bit-exact, fuzzed and 100 %-line-covered for all 514 indicators. - Identical across every language — proven, not promised. All 514 indicators are replayed through all 10 languages (Rust · Python · Node.js · WASM · C · C++ · C# · Go · Java · R) and checked bit-for-bit against the Rust reference via shared golden fixtures in CI. The math is verifiably the same everywhere — this very check caught and fixed two real cross-language marshalling bugs.
- Orders of magnitude faster where it counts. In streaming Wickra is 11–56× faster than the only other incremental peer and thousands of times faster than recompute-on-every-tick libraries. On batch it wins several rows outright and trades the simple recurrences (SMA, EMA, MACD) for its guarantees — and the losses are shown, not hidden.
- Install in one line, anywhere.
pip install wickra/npm install wickra— precompiled wheels and binaries, no C toolchain, none of TA-Lib's setup pain. macOS · Linux · Windows. - Batteries included — zero third-party deps, in every language. A full native
data layer ships in the box: a CSV candle reader, a tick-to-candle aggregator, a
timeframe resampler, a live Binance WebSocket feed and a historical Binance REST
fetcher — in all 10 languages. Loading a CSV, rolling ticks into candles,
resampling and streaming live data needs no foreign package — no pandas, no
csv-parse, nows/websockets, nojackson, nojsonlite, not even NumPy.pip install wickra/npm install wickra/go get/ … pulls nothing else. - Truly permissive. MIT OR Apache-2.0 — drop it straight into commercial and closed-source work.
Every other library forces one of those compromises. Wickra doesn't:
| Library | Install | Streaming | Languages | Indicators | Active | |------------------|-------------|-------------|-----------------------------|-----------:|--------| | ★ Wickra| clean | yes, O(1) | Rust · Python · Node.js · WASM · C · C++ · C# · Go · Java · R | 514 | yes | | kand | clean | yes | Python · WASM · Rust | ~60 | yes | | ta-rs | clean | yes | Rust only | ~30 | stale | | yata | clean | partial | Rust only | ~35 | yes | | TA-Lib | yes (C deps)| no | many bindings | ~150 | barely | | pandas-ta | clean | no | Python | ~130 | slow | | finta | clean | no | Python | ~80 | stale | | talipp | clean | yes | Python
Related Skills
clawhub
385.5kSearch ClawHub for skills when a requested capability is not already available; install, verify, update, uninstall, publish, or sync skills.
coding-agent
385.5kDelegate coding work to Codex, Claude Code, or OpenCode as background workers; not simple edits or read-only code lookup.
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
python-debugpy
385.5kDebug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote attach.
