Streaming-first Rust primitives for systematic trading. Zero-alloc hot paths.
Today: 21 streaming indicators in quantedge-ta, verified against talipp, TA-Lib, and pandas-ta, benchmarked with Criterion; the quantedge-strategy trait surface for writing signal generators is now published as a 0.0.1 preview alongside. MSRV 1.95.
quantedge-ta (0.21.0) and quantedge-core (0.3.0) are published on crates.io. Both are feature-complete for v1.0; the v1.0 bump is gated on validation under real streaming workloads.
quantedge-strategy (0.0.1) ships the SignalGenerator trait surface plus a complete test_util kit (FakeMarketSnapshot, RecordingMarketSignalConfig, EnforcingMarketSnapshot, FakeEngine) for unit-testing generators without a live engine. Released as a preview: the engine that consumes the trait is not yet implemented, so the contract has not been validated end-to-end. Pin to an exact 0.0.x version during the preview period — each bump should be assumed breaking. The 0.1.0 cut is gated on engine consumption.
- Streaming-first. Every indicator processes one tick at a time with O(1) update cost. Batch APIs are built on top of the streaming primitives, not the other way around.
- Zero-alloc hot paths. No hidden heap work inside the update loop. Runs in the browser via
wasm32-unknown-unknown(verified in CI). - Numerical correctness. NaN, Inf, and warmup semantics are documented per-indicator, not glossed over.
quantedge-tais verified against talipp, TA-Lib, and pandas-ta. - Benchmark-driven. Every performance claim has a
criterionbench behind it. No hand-waving.
- Indicators:
crates/ta/README.md, with a runnable WebSocket streaming demo atcrates/ta/example/(Binance BTC/USDT 5m klines with SMA(20) and intra-bar repaints). - Signal generators:
crates/strategy/README.md, with four worked examples atcrates/strategy/example/covering single-timeframe forming triggers, multi-timeframe filtering, close-of-bar triggers, and composite indicator outputs.
Design notes and per-indicator writeups at luksza.org/category/quantedge:
- I Marked My Cold Path #[cold] and It Got 134% Slower — 2026-05-11
- Why the Forming Bar Makes It Hard — 2026-04-13
- Donchian Channels: When the Infrastructure Does All the Work — 2026-04-05
- quantedge-ta: Real-Time Technical Analysis for Rust — 2026-03-08
- 5 Years, 3 Languages, One Trading System — 2026-02-28
crates/
core/ # shared types (Ohlcv struct, Price, Timestamp, Timeframe)
ta/ # technical analysis indicators
example/ # runnable WebSocket demo
strategy/ # SignalGenerator trait + test harness (re-exports core + ta surface)
example/ # four worked example generators (e01-e04) doubling as test_util tutorial
More crates (engine, sim, ob) will land here as they're built.
quantedge-corev1.0 - currently at0.3.0; v1.0 cut once validated under real streaming workloadsquantedge-tav1.0 - currently at0.21.0; v1.0 cut on the same gatequantedge-strategyv0.1.0 - currently at0.0.1preview;0.1.0cut once the engine has consumed the trait end-to-endquantedge-engine- streaming runtime with multi-timeframe state, deterministic event loop, and wasmtime-based generator registrationquantedge-sim- backtester with realistic fills, slippage, and drawdown reportingquantedge-ob- streaming order book with deterministic event replay
Contributions welcome. Please open an issue to discuss before submitting large changes.
Contributions are accepted under the licence of the crate being modified. Unless you explicitly state otherwise, your contribution shall be licensed under the same terms as that crate, without any additional terms or conditions.
Each crate in this workspace carries its own licence. See the LICENSE-* files in each crate directory for the full text.
Today, every published crate is dual-licensed under the Apache License 2.0 and the MIT License, at your option.