SkillAgentSearch skills...

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/wickra

Installs into whichever agent you are using.

README

<p align="center"> <a href="https://wickra.org"><img src="https://raw.githubusercontent.com/wickra-lib/.github/main/profile/wickra-banner.webp?v=514" alt="Wickra — streaming-first technical indicators" width="100%"></a> </p>

CI CodeQL codecov GitHub release crates.io PyPI npm NuGet Maven Central Go module R-universe License: MIT OR Apache-2.0 OpenSSF Scorecard OpenSSF Best Practices Build provenance Docs Live demo Verified across 10 languages


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:

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 update validates its input, runs a real warmup, and returns an Option so a single bad tick can't silently poison state. batch == streaming is 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, no ws/websockets, no jackson, no jsonlite, 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

View on GitHub
GitHub Stars40
CategoryDevelopment
Updated1d ago
Forks6

Languages

Rust

Security Score

95/100

Audited on Aug 7, 2026

No findings