wickra-wasm 0.7.6 → 0.7.7

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 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 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,8 @@ 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).
54
55
  - **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
55
56
  every one of the 514 indicators; start at the
56
57
  [indicators overview](https://docs.wickra.org/Indicators-Overview).
@@ -76,7 +77,7 @@ times to get there.
76
77
  metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
77
78
  none of them stream.
78
79
  - **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 —
80
+ WebAssembly · Rust** plus a **C ABI** for C / C++, C# / .NET, Go and any other C-capable language —
80
81
  identical math, identical results, zero per-language reimplementation and zero
81
82
  GIL bottleneck.
82
83
  - **Correct by construction, not by hope.** Every `update` validates its input,
@@ -101,7 +102,7 @@ Every other library forces one of those compromises. Wickra doesn't:
101
102
  | Library | Install | Streaming | Languages | Indicators | Active |
102
103
  |------------------|-------------|-------------|-----------------------------|-----------:|--------|
103
104
  | **★ Wickra**| **clean** | **yes, O(1)** | **Rust · Python · Node · WASM** | **514** | **yes** |
104
- | | | | **C · C#** | | |
105
+ | | | | **C · C# · Go** | | |
105
106
  | kand | clean | yes | Python · WASM · Rust | ~60 | yes |
106
107
  | ta-rs | clean | yes | Rust only | ~30 | stale |
107
108
  | yata | clean | partial | Rust only | ~35 | yes |
@@ -173,8 +174,8 @@ construct it in signed mode (`Doji::new().signed()`, `Doji(signed=True)`,
173
174
  `new Doji(true)`) for a dragonfly / gravestone `±1` reading.
174
175
 
175
176
  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).
177
+ inherits it automatically (the C ABI — and the C# and Go bindings generated from
178
+ it — regenerate from the core).
178
179
 
179
180
  ## Languages
180
181
 
@@ -186,6 +187,7 @@ regenerate from the core).
186
187
  | Rust | `cargo add wickra` | `examples/rust/src/bin/backtest.rs` |
187
188
  | C / C++ (C ABI) | header + library, see [`bindings/c`](bindings/c) | `examples/c/streaming.c` |
188
189
  | C# / .NET (C ABI) | `dotnet add package Wickra`, see [`bindings/csharp`](bindings/csharp) | `examples/csharp/streaming` |
190
+ | Go (cgo, C ABI) | `go get github.com/wickra-lib/wickra/bindings/go`, see [`bindings/go`](bindings/go) | `examples/go/streaming` |
189
191
 
190
192
  Each binding ships several runnable examples (streaming, backtest, live feed);
191
193
  [`examples/README.md`](examples/README.md) is the full cross-language index.
@@ -256,7 +258,8 @@ wickra/
256
258
  │ ├── node/ napi-rs (publishes on npm)
257
259
  │ ├── wasm/ wasm-bindgen (browsers, bundlers, Node)
258
260
  │ ├── c/ C ABI (cdylib + staticlib) + generated include/wickra.h
259
- └── csharp/ .NET binding over the C ABI (publishes on NuGet)
261
+ ├── csharp/ .NET binding over the C ABI (publishes on NuGet)
262
+ │ └── go/ Go binding over the C ABI via cgo (module tag)
260
263
  ├── examples/ examples/README.md indexes every language
261
264
  │ ├── data/ real BTCUSDT OHLCV datasets, one per timeframe
262
265
  │ ├── rust/ Rust workspace member (`wickra-examples`)
@@ -264,7 +267,8 @@ wickra/
264
267
  │ ├── node/ streaming, backtest, live trading (load `wickra`)
265
268
  │ ├── wasm/ browser demo for `wickra-wasm`
266
269
  │ ├── c/ C smoke + streaming, C++ RAII wrapper
267
- └── csharp/ streaming, backtest, strategies (load `Wickra`)
270
+ ├── csharp/ streaming, backtest, strategies (load `Wickra`)
271
+ │ └── go/ streaming, backtest, strategies (cgo binding)
268
272
  └── .github/workflows/ CI and release pipelines
269
273
  ```
270
274
 
@@ -300,6 +304,10 @@ cmake --build examples/c/build && ctest --test-dir examples/c/build --output-on-
300
304
 
301
305
  # C# / .NET binding (requires the .NET 8 SDK; links the C ABI above)
302
306
  dotnet test bindings/csharp/Wickra.Tests/Wickra.Tests.csproj
307
+
308
+ # Go binding (requires a C compiler for cgo; links the C ABI above)
309
+ cp target/release/libwickra.so bindings/go/lib/ # .dylib on macOS, wickra.dll on Windows
310
+ cd bindings/go && go test ./...
303
311
  ```
304
312
 
305
313
  ## Testing
@@ -319,6 +327,8 @@ Every layer is covered; run the suites with the commands in
319
327
  values across all indicators.
320
328
  - `bindings/wasm`: `wasm-bindgen-test` cases for constructors, equivalence,
321
329
  and reference values.
330
+ - `bindings/go`: `go test` cases covering one indicator per FFI archetype
331
+ (scalar/batch, multi-output, bars, profile, array input), reset, and lifecycle.
322
332
 
323
333
  ## Contributing
324
334
 
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "kingchenc <support@wickra.org>"
6
6
  ],
7
7
  "description": "WASM bindings for the Wickra streaming-first technical indicators library.",
8
- "version": "0.7.6",
8
+ "version": "0.7.7",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
Binary file