wickra-wasm 0.7.6 → 0.7.8
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 +28 -8
- package/package.json +1 -1
- package/wickra_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
Wickra is a multi-language technical-analysis library with a Rust core and
|
|
22
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
|
+
C# / .NET, Go, R and any other C-capable language links against. Every indicator is a
|
|
24
24
|
state machine that updates in O(1) per new data point, so live trading bots and
|
|
25
25
|
historical backtests share the exact same implementation.
|
|
26
26
|
|
|
@@ -50,7 +50,9 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
|
|
|
50
50
|
[Node](https://docs.wickra.org/Quickstart-Node),
|
|
51
51
|
[WASM](https://docs.wickra.org/Quickstart-WASM),
|
|
52
52
|
[C](https://docs.wickra.org/Quickstart-C),
|
|
53
|
-
[C#](https://docs.wickra.org/Quickstart-CSharp)
|
|
53
|
+
[C#](https://docs.wickra.org/Quickstart-CSharp),
|
|
54
|
+
[Go](https://docs.wickra.org/Quickstart-Go),
|
|
55
|
+
[R](https://docs.wickra.org/Quickstart-R).
|
|
54
56
|
- **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
|
|
55
57
|
every one of the 514 indicators; start at the
|
|
56
58
|
[indicators overview](https://docs.wickra.org/Indicators-Overview).
|
|
@@ -76,7 +78,7 @@ times to get there.
|
|
|
76
78
|
metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
|
|
77
79
|
none of them stream.
|
|
78
80
|
- **One Rust core, five first-class targets.** Native **Python · Node.js ·
|
|
79
|
-
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET and any other C-capable language —
|
|
81
|
+
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET, Go, R and any other C-capable language —
|
|
80
82
|
identical math, identical results, zero per-language reimplementation and zero
|
|
81
83
|
GIL bottleneck.
|
|
82
84
|
- **Correct by construction, not by hope.** Every `update` validates its input,
|
|
@@ -101,7 +103,7 @@ Every other library forces one of those compromises. Wickra doesn't:
|
|
|
101
103
|
| Library | Install | Streaming | Languages | Indicators | Active |
|
|
102
104
|
|------------------|-------------|-------------|-----------------------------|-----------:|--------|
|
|
103
105
|
| **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node · WASM** | **514** | **yes** |
|
|
104
|
-
| | | | **C · C
|
|
106
|
+
| | | | **C · C# · Go · R** | | |
|
|
105
107
|
| kand | clean | yes | Python · WASM · Rust | ~60 | yes |
|
|
106
108
|
| ta-rs | clean | yes | Rust only | ~30 | stale |
|
|
107
109
|
| yata | clean | partial | Rust only | ~35 | yes |
|
|
@@ -173,8 +175,8 @@ construct it in signed mode (`Doji::new().signed()`, `Doji(signed=True)`,
|
|
|
173
175
|
`new Doji(true)`) for a dragonfly / gravestone `±1` reading.
|
|
174
176
|
|
|
175
177
|
Adding a new indicator means implementing one trait in Rust; every binding
|
|
176
|
-
inherits it automatically (the C ABI — and the C
|
|
177
|
-
regenerate from the core).
|
|
178
|
+
inherits it automatically (the C ABI — and the C#, Go and R bindings generated from
|
|
179
|
+
it — regenerate from the core).
|
|
178
180
|
|
|
179
181
|
## Languages
|
|
180
182
|
|
|
@@ -186,6 +188,8 @@ regenerate from the core).
|
|
|
186
188
|
| Rust | `cargo add wickra` | `examples/rust/src/bin/backtest.rs` |
|
|
187
189
|
| C / C++ (C ABI) | header + library, see [`bindings/c`](bindings/c) | `examples/c/streaming.c` |
|
|
188
190
|
| C# / .NET (C ABI) | `dotnet add package Wickra`, see [`bindings/csharp`](bindings/csharp) | `examples/csharp/streaming` |
|
|
191
|
+
| Go (cgo, C ABI) | `go get github.com/wickra-lib/wickra/bindings/go`, see [`bindings/go`](bindings/go) | `examples/go/streaming` |
|
|
192
|
+
| R (`.Call`, C ABI) | `R CMD INSTALL bindings/r`, see [`bindings/r`](bindings/r) | `examples/r/streaming.R` |
|
|
189
193
|
|
|
190
194
|
Each binding ships several runnable examples (streaming, backtest, live feed);
|
|
191
195
|
[`examples/README.md`](examples/README.md) is the full cross-language index.
|
|
@@ -256,7 +260,9 @@ wickra/
|
|
|
256
260
|
│ ├── node/ napi-rs (publishes on npm)
|
|
257
261
|
│ ├── wasm/ wasm-bindgen (browsers, bundlers, Node)
|
|
258
262
|
│ ├── c/ C ABI (cdylib + staticlib) + generated include/wickra.h
|
|
259
|
-
│
|
|
263
|
+
│ ├── csharp/ .NET binding over the C ABI (publishes on NuGet)
|
|
264
|
+
│ ├── go/ Go binding over the C ABI via cgo (module tag)
|
|
265
|
+
│ └── r/ R binding over the C ABI via .Call (R package)
|
|
260
266
|
├── examples/ examples/README.md indexes every language
|
|
261
267
|
│ ├── data/ real BTCUSDT OHLCV datasets, one per timeframe
|
|
262
268
|
│ ├── rust/ Rust workspace member (`wickra-examples`)
|
|
@@ -264,7 +270,9 @@ wickra/
|
|
|
264
270
|
│ ├── node/ streaming, backtest, live trading (load `wickra`)
|
|
265
271
|
│ ├── wasm/ browser demo for `wickra-wasm`
|
|
266
272
|
│ ├── c/ C smoke + streaming, C++ RAII wrapper
|
|
267
|
-
│
|
|
273
|
+
│ ├── csharp/ streaming, backtest, strategies (load `Wickra`)
|
|
274
|
+
│ ├── go/ streaming, backtest, strategies (cgo binding)
|
|
275
|
+
│ └── r/ streaming, backtest, strategies (.Call binding)
|
|
268
276
|
└── .github/workflows/ CI and release pipelines
|
|
269
277
|
```
|
|
270
278
|
|
|
@@ -300,6 +308,14 @@ cmake --build examples/c/build && ctest --test-dir examples/c/build --output-on-
|
|
|
300
308
|
|
|
301
309
|
# C# / .NET binding (requires the .NET 8 SDK; links the C ABI above)
|
|
302
310
|
dotnet test bindings/csharp/Wickra.Tests/Wickra.Tests.csproj
|
|
311
|
+
|
|
312
|
+
# Go binding (requires a C compiler for cgo; links the C ABI above)
|
|
313
|
+
cp target/release/libwickra.so bindings/go/lib/ # .dylib on macOS, wickra.dll on Windows
|
|
314
|
+
cd bindings/go && go test ./...
|
|
315
|
+
|
|
316
|
+
# R binding (requires a C toolchain / Rtools; links the C ABI above)
|
|
317
|
+
WICKRA_INCLUDE_DIR="$PWD/bindings/c/include" WICKRA_LIB_DIR="$PWD/target/release" \
|
|
318
|
+
R CMD INSTALL bindings/r
|
|
303
319
|
```
|
|
304
320
|
|
|
305
321
|
## Testing
|
|
@@ -319,6 +335,10 @@ Every layer is covered; run the suites with the commands in
|
|
|
319
335
|
values across all indicators.
|
|
320
336
|
- `bindings/wasm`: `wasm-bindgen-test` cases for constructors, equivalence,
|
|
321
337
|
and reference values.
|
|
338
|
+
- `bindings/go`: `go test` cases covering one indicator per FFI archetype
|
|
339
|
+
(scalar/batch, multi-output, bars, profile, array input), reset, and lifecycle.
|
|
340
|
+
- `bindings/r`: `testthat` cases covering one indicator per FFI archetype
|
|
341
|
+
(scalar/batch, multi-output, bars, profile, array input), reset, and validation.
|
|
322
342
|
|
|
323
343
|
## Contributing
|
|
324
344
|
|
package/package.json
CHANGED
package/wickra_wasm_bg.wasm
CHANGED
|
Binary file
|