91f6f67257
The first language stecker on the C ABI hub: a .NET binding exposing all 514 indicators as idiomatic `IDisposable` classes, generated from `wickra.h`. ## What's here - **`bindings/csharp/`** — the `Wickra` .NET 8 package. `[LibraryImport]` source-generated P/Invoke (`NativeMethods.g.cs`) plus idiomatic wrappers (`Indicators.g.cs`), both generated from the committed `bindings/c/include/wickra.h`. The binding owns no indicator maths — it only marshals types across the C ABI. - **Marshalling, verified end-to-end against the native library.** Opaque handles cross as `nint` kept alive per call via a `SafeHandle`; `bool` as `[MarshalAs(U1)]` (Rust `bool` is one byte); a self-correcting `DllImportResolver` validates the loaded library actually exports the Wickra ABI. Tests cover one representative per FFI archetype (scalar, candle, pairwise, multi-output, bars, profile, values-profile, order-book / array-input) plus exact Sma reference values. - **NuGet packaging** — `dotnet pack` produces `Wickra.<version>.nupkg`; the release pipeline stages prebuilt native libraries under `runtimes/<rid>/native/` for six target triples (win/linux/osx × x64/arm64). - **`examples/csharp/`** — nine examples mirroring `examples/c/`: streaming, backtest, multi_timeframe, parallel_assets, three strategies, and fetch_btcusdt + live_binance. - **CI** — a `csharp` job on the three OSes builds the C ABI, tests the binding, and runs the offline examples. **Release** — a gated `csharp-publish` job packs and pushes to NuGet (gated on `NUGET_API_KEY`, independent of the GitHub-release job so a C# hiccup never blocks the C/C++ asset release). - **Docs consistency wave** — README, CONTRIBUTING, CHANGELOG, examples/README, the issue / PR templates, `sync-about.yml`, and `.gitattributes`. The native Python / Node / WASM bindings and the C ABI are untouched; this is additive. Publishing to NuGet stays gated behind the release tag and the secret.
1.3 KiB
1.3 KiB
Support
Thanks for using Wickra! Here is where to get help, depending on what you need.
Documentation first
Most questions are answered in the documentation:
- Docs site: https://docs.wickra.org — quickstarts for Rust, Python, Node.js, WebAssembly, C and C#, a per-indicator reference, warmup periods, the data layer, and an FAQ.
- README: https://github.com/wickra-lib/wickra#readme — installation and a quick overview.
- API docs (Rust): https://docs.rs/wickra.
Questions and help
- Ask a question with the question issue template.
- Browse existing issues — your question may already be answered.
Bugs and feature requests
- Bugs: use the bug-report issue template.
- Feature requests / new indicators: use the feature-request template.
Security issues
Please do not report security vulnerabilities through public issues. Follow
the process in SECURITY.md (private GitHub advisory or email).
Support expectations
Wickra is maintained by a single maintainer on a best-effort basis. Issues are triaged and acknowledged as time allows; there is no commercial support or SLA. Clear, reproducible reports get help fastest.