wickra-wasm 0.7.7 → 0.7.9
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 +25 -7
- 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, Go and any other C-capable language links against. Every indicator is a
|
|
23
|
+
C# / .NET, Go, Java, 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
|
|
|
@@ -51,7 +51,8 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
|
|
|
51
51
|
[WASM](https://docs.wickra.org/Quickstart-WASM),
|
|
52
52
|
[C](https://docs.wickra.org/Quickstart-C),
|
|
53
53
|
[C#](https://docs.wickra.org/Quickstart-CSharp),
|
|
54
|
-
[Go](https://docs.wickra.org/Quickstart-Go)
|
|
54
|
+
[Go](https://docs.wickra.org/Quickstart-Go),
|
|
55
|
+
[R](https://docs.wickra.org/Quickstart-R).
|
|
55
56
|
- **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
|
|
56
57
|
every one of the 514 indicators; start at the
|
|
57
58
|
[indicators overview](https://docs.wickra.org/Indicators-Overview).
|
|
@@ -77,7 +78,7 @@ times to get there.
|
|
|
77
78
|
metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
|
|
78
79
|
none of them stream.
|
|
79
80
|
- **One Rust core, five first-class targets.** Native **Python · Node.js ·
|
|
80
|
-
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET, Go and any other C-capable language —
|
|
81
|
+
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET, Go, Java, R and any other C-capable language —
|
|
81
82
|
identical math, identical results, zero per-language reimplementation and zero
|
|
82
83
|
GIL bottleneck.
|
|
83
84
|
- **Correct by construction, not by hope.** Every `update` validates its input,
|
|
@@ -102,7 +103,7 @@ Every other library forces one of those compromises. Wickra doesn't:
|
|
|
102
103
|
| Library | Install | Streaming | Languages | Indicators | Active |
|
|
103
104
|
|------------------|-------------|-------------|-----------------------------|-----------:|--------|
|
|
104
105
|
| **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node · WASM** | **514** | **yes** |
|
|
105
|
-
| | | | **C · C# · Go**
|
|
106
|
+
| | | | **C · C# · Go · Java · R** | | |
|
|
106
107
|
| kand | clean | yes | Python · WASM · Rust | ~60 | yes |
|
|
107
108
|
| ta-rs | clean | yes | Rust only | ~30 | stale |
|
|
108
109
|
| yata | clean | partial | Rust only | ~35 | yes |
|
|
@@ -174,7 +175,7 @@ construct it in signed mode (`Doji::new().signed()`, `Doji(signed=True)`,
|
|
|
174
175
|
`new Doji(true)`) for a dragonfly / gravestone `±1` reading.
|
|
175
176
|
|
|
176
177
|
Adding a new indicator means implementing one trait in Rust; every binding
|
|
177
|
-
inherits it automatically (the C ABI — and the C
|
|
178
|
+
inherits it automatically (the C ABI — and the C#, Go, Java and R bindings generated from
|
|
178
179
|
it — regenerate from the core).
|
|
179
180
|
|
|
180
181
|
## Languages
|
|
@@ -188,6 +189,8 @@ it — regenerate from the core).
|
|
|
188
189
|
| C / C++ (C ABI) | header + library, see [`bindings/c`](bindings/c) | `examples/c/streaming.c` |
|
|
189
190
|
| C# / .NET (C ABI) | `dotnet add package Wickra`, see [`bindings/csharp`](bindings/csharp) | `examples/csharp/streaming` |
|
|
190
191
|
| Go (cgo, C ABI) | `go get github.com/wickra-lib/wickra/bindings/go`, see [`bindings/go`](bindings/go) | `examples/go/streaming` |
|
|
192
|
+
| Java (FFM, C ABI) | Maven Central `org.wickra:wickra`, see [`bindings/java`](bindings/java) | `examples/java` (`Streaming`) |
|
|
193
|
+
| R (`.Call`, C ABI) | `R CMD INSTALL bindings/r`, see [`bindings/r`](bindings/r) | `examples/r/streaming.R` |
|
|
191
194
|
|
|
192
195
|
Each binding ships several runnable examples (streaming, backtest, live feed);
|
|
193
196
|
[`examples/README.md`](examples/README.md) is the full cross-language index.
|
|
@@ -259,7 +262,9 @@ wickra/
|
|
|
259
262
|
│ ├── wasm/ wasm-bindgen (browsers, bundlers, Node)
|
|
260
263
|
│ ├── c/ C ABI (cdylib + staticlib) + generated include/wickra.h
|
|
261
264
|
│ ├── csharp/ .NET binding over the C ABI (publishes on NuGet)
|
|
262
|
-
│
|
|
265
|
+
│ ├── go/ Go binding over the C ABI via cgo (module tag)
|
|
266
|
+
│ ├── r/ R binding over the C ABI via .Call (R package)
|
|
267
|
+
│ └── java/ Java binding over the C ABI via the FFM API (Maven Central)
|
|
263
268
|
├── examples/ examples/README.md indexes every language
|
|
264
269
|
│ ├── data/ real BTCUSDT OHLCV datasets, one per timeframe
|
|
265
270
|
│ ├── rust/ Rust workspace member (`wickra-examples`)
|
|
@@ -268,7 +273,9 @@ wickra/
|
|
|
268
273
|
│ ├── wasm/ browser demo for `wickra-wasm`
|
|
269
274
|
│ ├── c/ C smoke + streaming, C++ RAII wrapper
|
|
270
275
|
│ ├── csharp/ streaming, backtest, strategies (load `Wickra`)
|
|
271
|
-
│
|
|
276
|
+
│ ├── go/ streaming, backtest, strategies (cgo binding)
|
|
277
|
+
│ ├── r/ streaming, backtest, strategies (.Call binding)
|
|
278
|
+
│ └── java/ streaming, backtest, strategies (FFM binding)
|
|
272
279
|
└── .github/workflows/ CI and release pipelines
|
|
273
280
|
```
|
|
274
281
|
|
|
@@ -308,6 +315,13 @@ dotnet test bindings/csharp/Wickra.Tests/Wickra.Tests.csproj
|
|
|
308
315
|
# Go binding (requires a C compiler for cgo; links the C ABI above)
|
|
309
316
|
cp target/release/libwickra.so bindings/go/lib/ # .dylib on macOS, wickra.dll on Windows
|
|
310
317
|
cd bindings/go && go test ./...
|
|
318
|
+
|
|
319
|
+
# R binding (requires a C toolchain / Rtools; links the C ABI above)
|
|
320
|
+
WICKRA_INCLUDE_DIR="$PWD/bindings/c/include" WICKRA_LIB_DIR="$PWD/target/release" \
|
|
321
|
+
R CMD INSTALL bindings/r
|
|
322
|
+
|
|
323
|
+
# Java binding (requires JDK 22+ and Maven; links the C ABI above)
|
|
324
|
+
mvn -f bindings/java test
|
|
311
325
|
```
|
|
312
326
|
|
|
313
327
|
## Testing
|
|
@@ -329,6 +343,10 @@ Every layer is covered; run the suites with the commands in
|
|
|
329
343
|
and reference values.
|
|
330
344
|
- `bindings/go`: `go test` cases covering one indicator per FFI archetype
|
|
331
345
|
(scalar/batch, multi-output, bars, profile, array input), reset, and lifecycle.
|
|
346
|
+
- `bindings/r`: `testthat` cases covering one indicator per FFI archetype
|
|
347
|
+
(scalar/batch, multi-output, bars, profile, array input), reset, and validation.
|
|
348
|
+
- `bindings/java`: JUnit cases covering one indicator per FFI archetype
|
|
349
|
+
(scalar/batch, multi-output, bars, profile, array input) plus batch equivalence.
|
|
332
350
|
|
|
333
351
|
## Contributing
|
|
334
352
|
|
package/package.json
CHANGED
package/wickra_wasm_bg.wasm
CHANGED
|
Binary file
|