Skip to content

wickra-lib/wickra-terminal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Wickra — streaming-first trading terminal

Built on Wickra Status CI CodeQL codecov License: MIT OR Apache-2.0 OpenSSF Scorecard OpenSSF Best Practices Build provenance Docs Live demo


One core. Ten languages. Two renderers. A streaming trading terminal built on the Wickra core — live charts, order-book, tape and 514 streaming indicators — with a native TUI and a Web front-end as a selectable renderer of the same logic (--render tui|web).

▶ 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.

The heart is a single data-driven core, terminal-core: it folds market events into an O(1) AppState and turns panels into view-models (values, series, colours) — never renderer commands. The TUI maps a view-model to a ratatui widget; the Web app maps the same view-model to a canvas draw. One logic, N front-ends.

Data arrives through the DataSource trait, an activatable module:

  • Live — the wickra-exchange connectivity layer over the ten largest venues.
  • Replay — the wickra-backtest engine, driving a recorded feed with a time-machine seek.
  • Synth — a deterministic synthetic feed for demos and tests.

The core is exposed as a JSON-over-C-ABI data API (Terminal::command_json) in Rust, Python, Node.js, WASM, C, C++, C#, Go, Java and R — so a developer in any language builds their own front-end on the same core.

Status

Pre-release — functionally complete, CI-verified, not yet published. The core, both renderers (TUI + Web), all ten language bindings, the runtime source/symbol toggle, the panel set, the byte-exact golden corpus, property + fuzz tests, benchmarks and one runnable example per language are in place and green across the full CI matrix (10 languages × 3 OS). Not yet released to any registry — track progress in ROADMAP.md.

⚠️ Real orders move real money. Live execution is opt-in, testnet-first, and keys stay server-side (native renderer only). Both renderers default to read-only / paper mode. See THREAT_MODEL.md.

Documentation

Quickstart

# Native TUI renderer over a live Binance feed:
cargo run -p wickra-terminal -- --render tui --source live:binance:BTC/USDT

# Or a deterministic synthetic feed (no network):
cargo run -p wickra-terminal -- --render tui --source synth:1

Renderers

Renderer Where How
TUI native terminal crates/ui-tui (ratatui), --render tui
Web browser web/ (Vue) over bindings/wasm, --render web

Both consume the identical Frame of view-models from terminal-core.

Use in any language

The same Terminal handle — construct from a JSON config, drive with command(json) -> json, read version — is reachable from every binding:

from wickra_terminal import Terminal
t = Terminal('{"sources":[{"Synth":{"seed":1}}]}')
frame = t.command('{"Tick":{}}')   # JSON frame of panel view-models

Project layout

crates/terminal-core   the data-driven core (DataSource, AppState, panels → view-models)
crates/ui-tui          the native TUI renderer (bin: wickra-terminal)
crates/terminal-bench  criterion benchmarks
bindings/{python,node,wasm,c,go,csharp,java,r}   the ten-language surface
web/                   the Vue/Vite Web renderer over the WASM binding
golden/                recorded feeds + byte-exact expected frames (cross-language parity)
fuzz/                  cargo-fuzz targets (feed_event, state_fold, view_model, config_parse)
examples/              one runnable example per language
docs/                  architecture, panels, sources, renderers, streaming, cookbook

Building from source

cargo build --workspace
cargo test  --workspace --all-features
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo run -p wickra-terminal -- --render tui --source synth:1

Requirements

  • Rust ≥ 1.86 (workspace MSRV; the Node binding needs ≥ 1.88).
  • Renderer/binding toolchains as needed: Node ≥ 22, Python ≥ 3.9, a C toolchain, .NET 8, JDK 22+, Go 1.23, R — see each bindings/<lang>/README.md.

Ecosystem

Part of the Wickra family — each one a data-driven core with a CLI and the same ten-language binding surface:

  • wickra — the core library: 514 O(1) streaming indicators across ten languages
  • wickra-exchange — unified market-data + execution across ten crypto exchanges
  • wickra-backtest — event-driven backtester over the Wickra core
  • wickra-terminal — the trading terminal: a TUI and a browser renderer over the stack
  • wickra-screener — parallel multi-symbol screening over 514 streaming indicators
  • wickra-xray — market-microstructure explorer: footprint, order-book heatmap, liquidation map, funding/OI divergence
  • wickra-radar — perp-universe alert radar: OI delta, funding flip, book imbalance, liquidation clusters, OI/price divergence
  • wickra-copilot — local market copilot grounded in real order-book, liquidation and funding microstructure
  • wickra-shazam — match an asset's current microstructure fingerprint against its entire history

Docs at docs.wickra.org; the marketing site and in-browser demo at wickra.org.

Contributing

See CONTRIBUTING.md and CODE_OF_CONDUCT.md. Commits are signed and in English; open a PR against main.

Security

See SECURITY.md and THREAT_MODEL.md. Report vulnerabilities privately — never in a public issue.

License

Dual-licensed under either MIT or Apache-2.0, at your option.

Disclaimer

This software is provided "as is", without warranty of any kind. It is a research and engineering tool, not financial advice. Trading carries risk of loss. Run in paper mode and against exchange testnets, and review the code before risking real capital.

About

Streaming trading terminal — one data-driven core in 10 languages, with Web and TUI as a selectable renderer. Built on the Wickra core, exchange connectivity and backtester.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors