wickra-wasm 0.9.0 → 0.9.1
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 +31 -8
- package/package.json +1 -1
- package/wickra_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
**Streaming-first technical indicators. Install with `pip install wickra` — no system dependencies.**
|
|
23
23
|
|
|
24
24
|
Wickra is a multi-language technical-analysis library with a Rust core and
|
|
25
|
-
native bindings for Python, Node.js and
|
|
26
|
-
C
|
|
25
|
+
native bindings for Python, Node.js and WASM, plus a C ABI that C, C++,
|
|
26
|
+
C#, Go, Java, R and any other C-capable language links against. Every indicator is a
|
|
27
27
|
state machine that updates in O(1) per new data point, so live trading bots and
|
|
28
28
|
historical backtests share the exact same implementation.
|
|
29
29
|
|
|
@@ -81,8 +81,8 @@ times to get there.
|
|
|
81
81
|
breadth, Renko/Kagi/Point&Figure bars, Ehlers DSP cycles, risk/performance
|
|
82
82
|
metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
|
|
83
83
|
none of them stream.
|
|
84
|
-
- **One Rust core, five first-class targets.** Native **Python · Node.js ·
|
|
85
|
-
|
|
84
|
+
- **One Rust core, five first-class targets.** Native **Rust · Python · Node.js ·
|
|
85
|
+
WASM** plus a **C ABI** for C, C++, C#, Go, Java, R and any other C-capable language —
|
|
86
86
|
identical math, identical results, zero per-language reimplementation and zero
|
|
87
87
|
GIL bottleneck.
|
|
88
88
|
- **Correct by construction, not by hope.** Every `update` validates its input,
|
|
@@ -106,7 +106,7 @@ Every other library forces one of those compromises. Wickra doesn't:
|
|
|
106
106
|
|
|
107
107
|
| Library | Install | Streaming | Languages | Indicators | Active |
|
|
108
108
|
|------------------|-------------|-------------|-----------------------------|-----------:|--------|
|
|
109
|
-
| **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node · WASM · C · C# · Go · Java · R** | **514** | **yes** |
|
|
109
|
+
| **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node.js · WASM · C · C++ · C# · Go · Java · R** | **514** | **yes** |
|
|
110
110
|
| kand | clean | yes | Python · WASM · Rust | ~60 | yes |
|
|
111
111
|
| ta-rs | clean | yes | Rust only | ~30 | stale |
|
|
112
112
|
| yata | clean | partial | Rust only | ~35 | yes |
|
|
@@ -190,7 +190,7 @@ it — regenerate from the core).
|
|
|
190
190
|
| Browser / WASM | `npm install wickra-wasm` | `examples/wasm/index.html` |
|
|
191
191
|
| Rust | `cargo add wickra` | `examples/rust/src/bin/backtest.rs` |
|
|
192
192
|
| C / C++ (C ABI) | header + library, see [`bindings/c`](bindings/c) | `examples/c/streaming.c` |
|
|
193
|
-
| C#
|
|
193
|
+
| C# (C ABI) | `dotnet add package Wickra`, see [`bindings/csharp`](bindings/csharp) | `examples/csharp/streaming` |
|
|
194
194
|
| Go (cgo, C ABI) | `go get github.com/wickra-lib/wickra/bindings/go`, see [`bindings/go`](bindings/go) | `examples/go/streaming` |
|
|
195
195
|
| Java (FFM, C ABI) | Maven Central `org.wickra:wickra`, see [`bindings/java`](bindings/java) | `examples/java` (`Streaming`) |
|
|
196
196
|
| R (`.Call`, C ABI) | `R CMD INSTALL bindings/r`, see [`bindings/r`](bindings/r) | `examples/r/streaming.R` |
|
|
@@ -202,6 +202,29 @@ The wickra-core crate is `unsafe`-forbidden, so the native bindings are
|
|
|
202
202
|
memory-safe end to end. The C ABI runs the same safe core; only its thin FFI
|
|
203
203
|
boundary uses `unsafe`, and the caller owns handle lifetimes (`_new` / `_free`).
|
|
204
204
|
|
|
205
|
+
## Requirements
|
|
206
|
+
|
|
207
|
+
The minimum supported version per language. Prebuilt packages (Rust, Python,
|
|
208
|
+
Node.js, WASM, C#) need only the runtime; the C-ABI bindings that compile on
|
|
209
|
+
install — Go (cgo) and R (`.Call`) — also need a C compiler, and Java runs with
|
|
210
|
+
`--enable-native-access=ALL-UNNAMED`.
|
|
211
|
+
|
|
212
|
+
| Language | Package | Minimum supported |
|
|
213
|
+
|-------------|--------------------------------------|----------------------------|
|
|
214
|
+
| Rust | crates.io · `wickra` | 1.86 (MSRV) |
|
|
215
|
+
| Python | PyPI · `wickra` (abi3 wheel) | 3.9 (tested through 3.13) |
|
|
216
|
+
| Node.js | npm · `wickra` (N-API 8) | 20 (tested on 22 · 24 LTS) |
|
|
217
|
+
| WASM | npm · `wickra-wasm` | any modern JS engine |
|
|
218
|
+
| C | `wickra.h` + library (releases) | C99 compiler |
|
|
219
|
+
| C++ | `wickra.hpp` over the C ABI | C++14 compiler |
|
|
220
|
+
| C# | NuGet · `Wickra` | .NET 8 (`net8.0`) |
|
|
221
|
+
| Go | module · `wickra-lib/wickra-go` | Go 1.23 (cgo) |
|
|
222
|
+
| Java | Maven Central · `org.wickra:wickra` | Java 22 (FFM / Panama) |
|
|
223
|
+
| R | source package | R ≥ 2.10 (Rtools on Win.) |
|
|
224
|
+
|
|
225
|
+
Full per-language detail (runtime vs. build-from-source) is on the
|
|
226
|
+
[Requirements page](https://docs.wickra.org/Requirements) in the docs.
|
|
227
|
+
|
|
205
228
|
## Rust API
|
|
206
229
|
|
|
207
230
|
```rust
|
|
@@ -264,7 +287,7 @@ wickra/
|
|
|
264
287
|
│ ├── node/ napi-rs (publishes on npm)
|
|
265
288
|
│ ├── wasm/ wasm-bindgen (browsers, bundlers, Node)
|
|
266
289
|
│ ├── c/ C ABI (cdylib + staticlib) + generated include/wickra.h
|
|
267
|
-
│ ├── csharp/
|
|
290
|
+
│ ├── csharp/ C# binding over the C ABI (publishes on NuGet)
|
|
268
291
|
│ ├── go/ Go binding over the C ABI via cgo (module tag)
|
|
269
292
|
│ ├── r/ R binding over the C ABI via .Call (R package)
|
|
270
293
|
│ └── java/ Java binding over the C ABI via the FFM API (Maven Central)
|
|
@@ -312,7 +335,7 @@ cargo build -p wickra-c --release
|
|
|
312
335
|
cmake -S examples/c -B examples/c/build -DWICKRA_LIB_DIR="$PWD/target/release"
|
|
313
336
|
cmake --build examples/c/build && ctest --test-dir examples/c/build --output-on-failure
|
|
314
337
|
|
|
315
|
-
# C#
|
|
338
|
+
# C# binding (requires the .NET 8 SDK; links the C ABI above)
|
|
316
339
|
dotnet test bindings/csharp/Wickra.Tests/Wickra.Tests.csproj
|
|
317
340
|
|
|
318
341
|
# Go binding (requires a C compiler for cgo; links the C ABI above)
|
package/package.json
CHANGED
package/wickra_wasm_bg.wasm
CHANGED
|
Binary file
|