Five governance + onboarding files that collectively close the "no high-level documentation outside of README" gap. - ARCHITECTURE.md: workspace layout, Indicator trait contract, per-indicator file conventions, numerical-stability notes, cross-crate flow diagram, navigation cheatsheet, deliberate non-goals, performance characteristics, stability commitments. - ROADMAP.md: north star, 0.3 / 0.4 / 0.5 release windows, indicator-wishlist intake rules, explicit non-goals, versioning policy. - CITATION.cff: GitHub-renders as "Cite this repository" button; enables academic adoption. - .github/FUNDING.yml: surfaces Sponsor button on the repo page. - .editorconfig: normalises indent/EOL across IDEs (Rust/Python 4 spaces, JS/TS/JSON/YAML/MD 2 spaces, Makefile tabs). Touches no Rust source, no CI workflows, no behaviour. Additive only. URLs in ROADMAP/CITATION already reference the post-transfer `wickra-lib/wickra` org so the files stay valid once the org migration in PR #59 lands; merge this PR only after #59 to keep main consistent.
9.3 KiB
Roadmap
What Wickra is heading toward, what is explicitly out of scope, and what contributors can expect across the next 0.x versions. Roadmap items are aspirations, not commitments — order may shift based on real user-feedback and bug-priority.
For "what shipped already" see CHANGELOG.md. For the
internal structure that the roadmap items will plug into, see
ARCHITECTURE.md.
North star
A streaming-first technical-analysis core that is the obvious default for anyone writing a Rust, Python, Node or browser-based trading system — drop-in fast, drop-in correct, drop-in tested.
Three measurable proxies for "obvious default":
- Coverage. Every textbook indicator from TA-Lib, pandas-ta and talipp is in Wickra and produces matching reference values.
- Performance. Streaming
updateis the fastest published number across Rust / Python / Node / WASM for any technical indicator. - Trust. Releases are reproducible, signed, SBOM-attached, with a public 100% test/branch coverage badge.
0.3.0 — target window: Q3 2026
The first release after the org migration to wickra-lib lands and the
project portal at wickra.org is live.
Headline goals
- WASM has automated tests.
wasm-bindgen-testjob in CI exercising a representative subset (~30 indicators across all families). Today WASM is only smoke-validated through manual examples. - Release-pipeline trust. SBOM (CycloneDX) generated per release,
Sigstore cosign signatures attached to every published artifact,
npm
--provenanceflag enabled, PyPI Trusted Publishers configured. - Hosted documentation portal.
wickra.org(Cloudflare Pages, VitePress) replaces the GitHub Wiki as the canonical doc surface. Per-indicator deep-dives, quickstarts, FAQ, search. - End-to-end strategy examples. 3 runnable examples that wire Wickra indicators into a full mean-reversion / trend-following / breakout strategy with PnL and equity-curve output.
ARCHITECTURE.md+ROADMAP.md+CITATION.cffgovernance baseline (this is it).
Stretch goals (might slip to 0.4.0)
- Per-binding hosted API reference. TypeDoc for Node/WASM,
Sphinx for Python, both hosted on
wickra.org/api/*. Rust stays ondocs.rs. - Property-tests (
proptest) for mathematical invariants. Bound checks on RSI ∈ [0, 100], Bollinger ordering, batch-streaming equivalence on random inputs. - Nightly long-fuzz workflow. Each fuzz target gets ~1h overnight, findings auto-converted to issues.
0.4.0 — target window: Q4 2026
Indicator catalogue expansion
The current 214 indicators cover the textbook canon. The next wave is the "stuff people actually ask for but skip because it's painful in other libs":
- Anchored indicators. AnchoredVwap is already in, but anchored variants of common indicators (AnchoredATR, AnchoredVolatility) are on the wishlist for explicit session-based analysis.
- Multi-timeframe (MTF) chaining helpers. A
Mtf<Indicator>wrapper that runs an indicator on a different timeframe of the same input stream — solves the most common reason people drop down to ad-hoc buffering code. - Order-flow primitives (gated on tick-data ingestion landing in
wickra-data): CumulativeDelta, BidAskImbalance, VolumeAtPrice. - Pivot-confirmation patterns. WilliamsFractals is already in; ZigZag is in. Next: PivotHigh/PivotLow with configurable left/right-bar confirmation, used as a feature for higher-level pattern detectors.
- Harmonic-chart patterns (Gartley, Bat, Butterfly, Crab, Shark). These need the pivot-detector + ratio-matcher framework first; the candlestick-pattern family from 0.2.8 is the precedent.
Live-data layer
- Tick-data ingestion. Extend
wickra-datafrom OHLCV-only to also accept raw ticks; the existingAggregatoralready aggregates ticks into bars but isn't exposed in the public live-feed API yet. - Generic exchange trait.
LiveFeed { fn subscribe(...) -> impl Stream<Item = Candle> }so the Binance adapter is one implementor among many. Note: Wickra will not aggregate exchanges itself (useccxtif you need that) — the trait exists so user code can swap feeds without touching indicator code.
Performance & reliability
- Performance-regression tracking.
bench.ymloutputs deployed to agh-pagesbranch,github-action-benchmarkplot over time, threshold-based alerts on regression. - Indicator parity test suite. Every indicator that has a TA-Lib
/ pandas-ta / talipp equivalent must pass a golden-value test
against that reference. Currently most do but the test names are
scattered — consolidate into one
parity_testsmodule.
0.5.0 — target window: 2027 H1
Possible new bindings
Open questions, prioritised by demand signals (≈ GitHub stars + issue requests + community polls):
- Java / Kotlin binding via UniFFI — interest from Android-side trading-app developers and the JVM-quant community.
- Go binding — interest from algorithmic-trading shops running on Linux + Go infra.
- C / C++ header export (
cbindgen) — drops Wickra into existing C/C++ trading stacks (e.g. older Bloomberg / FIX-protocol shops). - Swift — niche but real, iOS / macOS native trading apps.
- .NET — closes the Windows-native gap that NAPI-Node doesn't fill (some shops are still on .NET Framework).
None of these are committed — each is a 1-2-month project on its own, and bindings without active maintenance are a liability. Priority will be driven by which language community shows up with PRs.
wickra-data widening
- Historical fetch from > 1 source. Today only Binance REST/WS. Add Coinbase and Kraken as reference implementations — explicitly not exchange-aggregation, just "here are two more adapters using the trait".
Beyond — long-term aspirations
wickra-backtestsub-crate (decision pending). A minimal event-driven backtester wrapping signal generation + position sizing + fees + slippage. Decision factor: do users keep building these ad-hoc fromexamples/? If yes, codifying it saves the ecosystem time. If most users plug Wickra into existing backtesters (vectorbt, backtrader, Lean, Hummingbot), keep Wickra focused.wickra-plotcompanion (low priority).plotters-backed Rust rendering of indicator outputs. Mainly useful for static report generation; live charting belongs in the JS/web layer.- Academic adoption. Citable
CITATION.cff; targeting at least one peer-reviewed paper using Wickra as the reference indicator engine.
What is explicitly not on the roadmap
These are recurring requests that Wickra will decline so contributors don't waste time on them:
| Feature | Why declined |
|---|---|
| Exchange aggregation across N venues | That's ccxt's job. Wickra ships one feed implementor (Binance) for tests and demo; users plug their preferred exchange. |
| Full backtesting framework (à la Lean, vectorbt) | Scope creep. May land as wickra-backtest if a clear minimal API surfaces from user demand, but Wickra core stays an indicator library. |
| Strategy auto-tuning / hyperparameter search | Wrong abstraction layer — belongs in user-side ML/backtester. |
| Order-management / broker integration | Even further out of scope. |
| GUI / web-based studio | Marketing-site demos are fine; full IDE is not. |
| Indicator implementations that require optional Python deps (e.g. scipy KDE) | Bindings must work on a clean install. Pure-Rust math only. |
| Proprietary indicator implementations (e.g. paywalled vendor formulas) | License conflicts + audit burden. |
| GPU / CUDA acceleration | O(1) per update means the bottleneck is API overhead, not compute. SIMD-batch is a maybe; GPU adds no value for streaming. |
How indicator wishlist requests are handled
- Open an issue using the
feature_requesttemplate, naming the indicator, citing one of:- TA-Lib reference
- pandas-ta reference
- peer-reviewed paper
- widely-published trading book
- Maintainer triages within ~1 week. Acceptance criteria:
- Formula has at least one written reference (no random YouTuber-only indicators)
- Implementation can be O(1) streaming
- Test vectors are obtainable (from reference lib, hand-computed, or paper-provided)
- Once accepted, the indicator gets added to the next family-batch PR. Family-batches typically ship 5-20 indicators at a time.
Versioning
Wickra follows SemVer. The promise:
- 0.x.0 (minor): new indicators, new bindings, new optional features,
new optional config knobs. Adding methods to
Indicatorwith default impls is minor. - 0.x.y (patch): bug fixes, performance improvements, doc fixes.
- Major (1.0.0 and later): changes to the
Indicatortrait signature, removal of indicators, breaking changes toCandle/OHLCVfield order.
The 1.0 milestone is reserved for when the indicator catalogue is considered "stable enough" and the bindings API has stabilised — likely ~2027 once 2-3 more bindings have shipped and stress-tested the trait.
Discussion
For roadmap discussion, open a Discussions
thread tagged roadmap. Specific indicator wishlist items go in
Issues via the
feature_request template.