wickra-wasm 0.7.5 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -21
- package/package.json +1 -1
- package/wickra_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -2,24 +2,25 @@
|
|
|
2
2
|
<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>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
[](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/wickra-lib/wickra/actions/workflows/codeql.yml)
|
|
7
|
+
[](https://codecov.io/gh/wickra-lib/wickra)
|
|
8
|
+
[](https://github.com/wickra-lib/wickra/releases/latest)
|
|
9
|
+
[](https://crates.io/crates/wickra)
|
|
10
|
+
[](https://pypi.org/project/wickra/)
|
|
11
|
+
[](https://www.npmjs.com/package/wickra)
|
|
12
|
+
[](https://www.nuget.org/packages/Wickra)
|
|
13
|
+
[](#license)
|
|
14
|
+
[](https://scorecard.dev/viewer/?uri=github.com/wickra-lib/wickra)
|
|
15
|
+
[](https://www.bestpractices.dev/projects/13094)
|
|
16
|
+
[](https://github.com/wickra-lib/wickra/attestations)
|
|
17
|
+
[](https://docs.wickra.org)
|
|
17
18
|
|
|
18
19
|
**Streaming-first technical indicators. Install with `pip install wickra` — no system dependencies.**
|
|
19
20
|
|
|
20
21
|
Wickra is a multi-language technical-analysis library with a Rust core and
|
|
21
|
-
native bindings for Python, Node.js and WebAssembly, plus a C ABI that
|
|
22
|
-
C
|
|
22
|
+
native bindings for Python, Node.js and WebAssembly, plus a C ABI that C, C++,
|
|
23
|
+
C# / .NET and any other C-capable language links against. Every indicator is a
|
|
23
24
|
state machine that updates in O(1) per new data point, so live trading bots and
|
|
24
25
|
historical backtests share the exact same implementation.
|
|
25
26
|
|
|
@@ -47,7 +48,9 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
|
|
|
47
48
|
- **Quickstarts** — [Rust](https://docs.wickra.org/Quickstart-Rust),
|
|
48
49
|
[Python](https://docs.wickra.org/Quickstart-Python),
|
|
49
50
|
[Node](https://docs.wickra.org/Quickstart-Node),
|
|
50
|
-
[WASM](https://docs.wickra.org/Quickstart-WASM)
|
|
51
|
+
[WASM](https://docs.wickra.org/Quickstart-WASM),
|
|
52
|
+
[C](https://docs.wickra.org/Quickstart-C),
|
|
53
|
+
[C#](https://docs.wickra.org/Quickstart-CSharp).
|
|
51
54
|
- **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
|
|
52
55
|
every one of the 514 indicators; start at the
|
|
53
56
|
[indicators overview](https://docs.wickra.org/Indicators-Overview).
|
|
@@ -73,7 +76,7 @@ times to get there.
|
|
|
73
76
|
metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
|
|
74
77
|
none of them stream.
|
|
75
78
|
- **One Rust core, five first-class targets.** Native **Python · Node.js ·
|
|
76
|
-
WebAssembly · Rust** plus a **C ABI** for C / C
|
|
79
|
+
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET and any other C-capable language —
|
|
77
80
|
identical math, identical results, zero per-language reimplementation and zero
|
|
78
81
|
GIL bottleneck.
|
|
79
82
|
- **Correct by construction, not by hope.** Every `update` validates its input,
|
|
@@ -97,7 +100,8 @@ Every other library forces one of those compromises. Wickra doesn't:
|
|
|
97
100
|
|
|
98
101
|
| Library | Install | Streaming | Languages | Indicators | Active |
|
|
99
102
|
|------------------|-------------|-------------|-----------------------------|-----------:|--------|
|
|
100
|
-
| **★ Wickra**| **clean** | **yes, O(1)** | **Python · Node · WASM
|
|
103
|
+
| **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node · WASM** | **514** | **yes** |
|
|
104
|
+
| | | | **C · C#** | | |
|
|
101
105
|
| kand | clean | yes | Python · WASM · Rust | ~60 | yes |
|
|
102
106
|
| ta-rs | clean | yes | Rust only | ~30 | stale |
|
|
103
107
|
| yata | clean | partial | Rust only | ~35 | yes |
|
|
@@ -168,8 +172,9 @@ as one column each. `Doji` is direction-less by default (`+1.0` / `0.0`);
|
|
|
168
172
|
construct it in signed mode (`Doji::new().signed()`, `Doji(signed=True)`,
|
|
169
173
|
`new Doji(true)`) for a dragonfly / gravestone `±1` reading.
|
|
170
174
|
|
|
171
|
-
Adding a new indicator means implementing one trait in Rust;
|
|
172
|
-
|
|
175
|
+
Adding a new indicator means implementing one trait in Rust; every binding
|
|
176
|
+
inherits it automatically (the C ABI — and the C# binding generated from it —
|
|
177
|
+
regenerate from the core).
|
|
173
178
|
|
|
174
179
|
## Languages
|
|
175
180
|
|
|
@@ -180,6 +185,7 @@ inherit it automatically (the C ABI is generated from the core).
|
|
|
180
185
|
| Browser / WASM | `npm install wickra-wasm` | `examples/wasm/index.html` |
|
|
181
186
|
| Rust | `cargo add wickra` | `examples/rust/src/bin/backtest.rs` |
|
|
182
187
|
| C / C++ (C ABI) | header + library, see [`bindings/c`](bindings/c) | `examples/c/streaming.c` |
|
|
188
|
+
| C# / .NET (C ABI) | `dotnet add package Wickra`, see [`bindings/csharp`](bindings/csharp) | `examples/csharp/streaming` |
|
|
183
189
|
|
|
184
190
|
Each binding ships several runnable examples (streaming, backtest, live feed);
|
|
185
191
|
[`examples/README.md`](examples/README.md) is the full cross-language index.
|
|
@@ -249,14 +255,16 @@ wickra/
|
|
|
249
255
|
│ ├── python/ PyO3 + maturin (publishes on PyPI)
|
|
250
256
|
│ ├── node/ napi-rs (publishes on npm)
|
|
251
257
|
│ ├── wasm/ wasm-bindgen (browsers, bundlers, Node)
|
|
252
|
-
│
|
|
258
|
+
│ ├── c/ C ABI (cdylib + staticlib) + generated include/wickra.h
|
|
259
|
+
│ └── csharp/ .NET binding over the C ABI (publishes on NuGet)
|
|
253
260
|
├── examples/ examples/README.md indexes every language
|
|
254
261
|
│ ├── data/ real BTCUSDT OHLCV datasets, one per timeframe
|
|
255
262
|
│ ├── rust/ Rust workspace member (`wickra-examples`)
|
|
256
263
|
│ ├── python/ backtest, live trading, parallel assets, multi-tf
|
|
257
264
|
│ ├── node/ streaming, backtest, live trading (load `wickra`)
|
|
258
265
|
│ ├── wasm/ browser demo for `wickra-wasm`
|
|
259
|
-
│
|
|
266
|
+
│ ├── c/ C smoke + streaming, C++ RAII wrapper
|
|
267
|
+
│ └── csharp/ streaming, backtest, strategies (load `Wickra`)
|
|
260
268
|
└── .github/workflows/ CI and release pipelines
|
|
261
269
|
```
|
|
262
270
|
|
|
@@ -289,6 +297,9 @@ cd bindings/node && npm install && npm run build && npm test
|
|
|
289
297
|
cargo build -p wickra-c --release
|
|
290
298
|
cmake -S examples/c -B examples/c/build -DWICKRA_LIB_DIR="$PWD/target/release"
|
|
291
299
|
cmake --build examples/c/build && ctest --test-dir examples/c/build --output-on-failure
|
|
300
|
+
|
|
301
|
+
# C# / .NET binding (requires the .NET 8 SDK; links the C ABI above)
|
|
302
|
+
dotnet test bindings/csharp/Wickra.Tests/Wickra.Tests.csproj
|
|
292
303
|
```
|
|
293
304
|
|
|
294
305
|
## Testing
|
package/package.json
CHANGED
package/wickra_wasm_bg.wasm
CHANGED
|
Binary file
|