wickra-wasm 0.7.8 → 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 +14 -6
- 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, R 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
|
|
|
@@ -78,7 +78,7 @@ times to get there.
|
|
|
78
78
|
metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
|
|
79
79
|
none of them stream.
|
|
80
80
|
- **One Rust core, five first-class targets.** Native **Python · Node.js ·
|
|
81
|
-
WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET, Go, R 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 —
|
|
82
82
|
identical math, identical results, zero per-language reimplementation and zero
|
|
83
83
|
GIL bottleneck.
|
|
84
84
|
- **Correct by construction, not by hope.** Every `update` validates its input,
|
|
@@ -103,7 +103,7 @@ Every other library forces one of those compromises. Wickra doesn't:
|
|
|
103
103
|
| Library | Install | Streaming | Languages | Indicators | Active |
|
|
104
104
|
|------------------|-------------|-------------|-----------------------------|-----------:|--------|
|
|
105
105
|
| **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node · WASM** | **514** | **yes** |
|
|
106
|
-
| | | | **C · C# · Go · R**
|
|
106
|
+
| | | | **C · C# · Go · Java · R** | | |
|
|
107
107
|
| kand | clean | yes | Python · WASM · Rust | ~60 | yes |
|
|
108
108
|
| ta-rs | clean | yes | Rust only | ~30 | stale |
|
|
109
109
|
| yata | clean | partial | Rust only | ~35 | yes |
|
|
@@ -175,7 +175,7 @@ construct it in signed mode (`Doji::new().signed()`, `Doji(signed=True)`,
|
|
|
175
175
|
`new Doji(true)`) for a dragonfly / gravestone `±1` reading.
|
|
176
176
|
|
|
177
177
|
Adding a new indicator means implementing one trait in Rust; every binding
|
|
178
|
-
inherits it automatically (the C ABI — and the C#, Go and R bindings generated from
|
|
178
|
+
inherits it automatically (the C ABI — and the C#, Go, Java and R bindings generated from
|
|
179
179
|
it — regenerate from the core).
|
|
180
180
|
|
|
181
181
|
## Languages
|
|
@@ -189,6 +189,7 @@ it — regenerate from the core).
|
|
|
189
189
|
| C / C++ (C ABI) | header + library, see [`bindings/c`](bindings/c) | `examples/c/streaming.c` |
|
|
190
190
|
| C# / .NET (C ABI) | `dotnet add package Wickra`, see [`bindings/csharp`](bindings/csharp) | `examples/csharp/streaming` |
|
|
191
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`) |
|
|
192
193
|
| R (`.Call`, C ABI) | `R CMD INSTALL bindings/r`, see [`bindings/r`](bindings/r) | `examples/r/streaming.R` |
|
|
193
194
|
|
|
194
195
|
Each binding ships several runnable examples (streaming, backtest, live feed);
|
|
@@ -262,7 +263,8 @@ wickra/
|
|
|
262
263
|
│ ├── c/ C ABI (cdylib + staticlib) + generated include/wickra.h
|
|
263
264
|
│ ├── csharp/ .NET binding over the C ABI (publishes on NuGet)
|
|
264
265
|
│ ├── go/ Go binding over the C ABI via cgo (module tag)
|
|
265
|
-
│
|
|
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)
|
|
266
268
|
├── examples/ examples/README.md indexes every language
|
|
267
269
|
│ ├── data/ real BTCUSDT OHLCV datasets, one per timeframe
|
|
268
270
|
│ ├── rust/ Rust workspace member (`wickra-examples`)
|
|
@@ -272,7 +274,8 @@ wickra/
|
|
|
272
274
|
│ ├── c/ C smoke + streaming, C++ RAII wrapper
|
|
273
275
|
│ ├── csharp/ streaming, backtest, strategies (load `Wickra`)
|
|
274
276
|
│ ├── go/ streaming, backtest, strategies (cgo binding)
|
|
275
|
-
│
|
|
277
|
+
│ ├── r/ streaming, backtest, strategies (.Call binding)
|
|
278
|
+
│ └── java/ streaming, backtest, strategies (FFM binding)
|
|
276
279
|
└── .github/workflows/ CI and release pipelines
|
|
277
280
|
```
|
|
278
281
|
|
|
@@ -316,6 +319,9 @@ cd bindings/go && go test ./...
|
|
|
316
319
|
# R binding (requires a C toolchain / Rtools; links the C ABI above)
|
|
317
320
|
WICKRA_INCLUDE_DIR="$PWD/bindings/c/include" WICKRA_LIB_DIR="$PWD/target/release" \
|
|
318
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
|
|
319
325
|
```
|
|
320
326
|
|
|
321
327
|
## Testing
|
|
@@ -339,6 +345,8 @@ Every layer is covered; run the suites with the commands in
|
|
|
339
345
|
(scalar/batch, multi-output, bars, profile, array input), reset, and lifecycle.
|
|
340
346
|
- `bindings/r`: `testthat` cases covering one indicator per FFI archetype
|
|
341
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.
|
|
342
350
|
|
|
343
351
|
## Contributing
|
|
344
352
|
|
package/package.json
CHANGED
package/wickra_wasm_bg.wasm
CHANGED
|
Binary file
|