Benchmarks
Wickra is a streaming-first library: the state machine inside every indicator can take a single new tick and return its updated output in constant time. The numbers below show what that costs in wall-clock time relative to the most-used Python TA libraries.
Reproduce these on your own hardware
pip install -e bindings/python[bench]
python -m benchmarks.compare_librariesThe script auto-detects every peer library installed in your venv and runs them against the same generated input as Wickra. The CI job cross-library-bench uploads the raw report as an artefact on every push.
Batch — single full pass over 20 000 bars
Lower bar = faster. The orange bar is Wickra, the grey bar is the peer.
vs. finta
vs. talipp
Streaming — per-tick latency after 5 000 historical bars
This is where streaming-first really shows. A batch-only library has to re-run its full indicator over the entire history on every new tick; Wickra advances its internal state by one step.
Why isn't TA-Lib / pandas-ta on these charts?
Both fail to install cleanly on Windows without C build tooling — which is precisely the install-pain Wickra was built to remove. The bench script auto-detects every peer library it can find and runs them on the same inputs as Wickra; install them in your environment and those rows will show up too.
What the numbers do not say
- Absolute µs values depend on CPU, memory clock, OS scheduler, and the Python / Node / Rust versions — read them as relative speedups between libraries on identical input, not as a universal performance contract.
- Reproduced on: Windows 11 Pro 26200, AMD Ryzen 9 9950X, 64 GB DDR5, Rust 1.92 (release profile,
lto = "fat",codegen-units = 1), Python 3.12, Node 20. - The Wickra figures are the Python binding runtime, not the bare Rust kernel — there is a small PyO3 boundary cost included on each measurement.
See also
benchmarks/compare_libraries.py— the canonical script the table above runs.- Bench workflow — nightly run on the GitHub-hosted Linux runner, archived as build artefacts.
- Streaming-vs-Batch (docs) — what the equivalence guarantee actually means.