Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41d5a7dd25 | ||
|
|
e595ea8bfe |
@@ -1031,6 +1031,47 @@ jobs:
|
|||||||
mvn -B -q -f examples/java exec:exec -Dexec.mainClass="org.wickra.examples.$cls"
|
mvn -B -q -f examples/java exec:exec -Dexec.mainClass="org.wickra.examples.$cls"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Build a Python wheel inside both the manylinux and the musllinux container,
|
||||||
|
# mirroring the Linux wheel build in release.yml. The 3-OS Python jobs build
|
||||||
|
# natively on the runner, which already ships system OpenSSL, so they cannot
|
||||||
|
# catch a build-time gap that only exists inside the slim release containers —
|
||||||
|
# exactly what broke the 0.9.3 Linux wheels (the live-binance data layer links
|
||||||
|
# native-tls -> openssl-sys, and the containers provide no OpenSSL: manylinux
|
||||||
|
# lacks the headers, musllinux cross-compiles against a musl sysroot without
|
||||||
|
# OpenSSL at all). The wheels are built with the `vendored-tls` feature, which
|
||||||
|
# statically compiles OpenSSL from source. This job exercises both container
|
||||||
|
# builds on every PR, so the same class of breakage now fails CI, not release.
|
||||||
|
python-wheel-container-smoke:
|
||||||
|
name: Python wheel (${{ matrix.manylinux }} smoke)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30 # backstop: vendored OpenSSL adds a from-source compile
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
manylinux: [auto, musllinux_1_2]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
|
- name: Sync root README into bindings/python so the build matches release
|
||||||
|
run: cp README.md bindings/python/README.md
|
||||||
|
|
||||||
|
- uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
||||||
|
with:
|
||||||
|
working-directory: bindings/python
|
||||||
|
target: x86_64
|
||||||
|
# Keep in sync with release.yml: vendored OpenSSL for the Linux wheels.
|
||||||
|
args: --release --out dist --features vendored-tls
|
||||||
|
manylinux: ${{ matrix.manylinux }}
|
||||||
|
# Building OpenSSL from source needs Perl modules (IPC::Cmd,
|
||||||
|
# Time::Piece, ...) the minimal manylinux (CentOS 7) image lacks.
|
||||||
|
# perl-core pulls the full distribution; the explicit names document
|
||||||
|
# the ones OpenSSL's Configure has required. The musllinux cross image
|
||||||
|
# ships a complete Perl and has no yum, so this is a no-op there.
|
||||||
|
before-script-linux: |
|
||||||
|
if command -v yum >/dev/null 2>&1; then yum install -y perl-core perl-IPC-Cmd perl-Data-Dumper perl-Time-Piece; fi
|
||||||
|
|
||||||
# The cross-library benchmark has moved to a dedicated scheduled workflow
|
# The cross-library benchmark has moved to a dedicated scheduled workflow
|
||||||
# (.github/workflows/bench.yml) — see audit finding R10. It runs nightly
|
# (.github/workflows/bench.yml) — see audit finding R10. It runs nightly
|
||||||
# at 03:00 UTC and on-demand via `workflow_dispatch`, and is no longer on
|
# at 03:00 UTC and on-demand via `workflow_dispatch`, and is no longer on
|
||||||
|
|||||||
@@ -184,8 +184,22 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
working-directory: bindings/python
|
working-directory: bindings/python
|
||||||
target: ${{ matrix.target }}
|
target: ${{ matrix.target }}
|
||||||
args: --release --strip --out dist
|
# The live-binance data layer links native-tls -> openssl-sys, which
|
||||||
|
# needs OpenSSL at build time. The manylinux containers lack the headers
|
||||||
|
# and the musllinux build cross-compiles against a musl sysroot with no
|
||||||
|
# OpenSSL at all, so build the Linux wheels with vendored OpenSSL
|
||||||
|
# (compiled from source, linked statically). No-op on the native
|
||||||
|
# macOS/Windows runners, where native-tls never pulls openssl-sys. The
|
||||||
|
# CI `python-wheel-container-smoke` job exercises both containers on PRs.
|
||||||
|
args: --release --strip --out dist --features vendored-tls
|
||||||
manylinux: ${{ matrix.manylinux }}
|
manylinux: ${{ matrix.manylinux }}
|
||||||
|
# Building OpenSSL from source needs Perl modules (IPC::Cmd,
|
||||||
|
# Time::Piece, ...) the minimal manylinux (CentOS 7) image lacks.
|
||||||
|
# perl-core pulls the full distribution; the explicit names document
|
||||||
|
# the ones OpenSSL's Configure has required. The musllinux cross image
|
||||||
|
# ships a complete Perl and has no yum, so this is a no-op there.
|
||||||
|
before-script-linux: |
|
||||||
|
if command -v yum >/dev/null 2>&1; then yum install -y perl-core perl-IPC-Cmd perl-Data-Dumper perl-Time-Piece; fi
|
||||||
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||||
with:
|
with:
|
||||||
# Include manylinux in the name so the glibc and musl x86_64/aarch64
|
# Include manylinux in the name so the glibc and musl x86_64/aarch64
|
||||||
|
|||||||
+28
-1
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.9.4] - 2026-06-17
|
||||||
|
|
||||||
|
Packaging fix for the `0.9.3` data layer. The library is identical to `0.9.3` on
|
||||||
|
every platform that already published; the only additions are an opt-in
|
||||||
|
`vendored-tls` build feature and the Linux Python wheels, which `0.9.3` could not
|
||||||
|
build.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Linux Python wheels (`manylinux` / `musllinux`) now build.** The `live-binance`
|
||||||
|
data layer links `native-tls` -> `openssl-sys`, which needs OpenSSL at build
|
||||||
|
time. The `manylinux` wheel containers ship no OpenSSL headers and the
|
||||||
|
`musllinux` build cross-compiles against a musl sysroot that has no OpenSSL at
|
||||||
|
all, so the wheels failed to compile. The Linux wheels are now built with a new
|
||||||
|
opt-in `vendored-tls` feature that compiles OpenSSL from source and links it
|
||||||
|
statically (no system OpenSSL required, on either libc). The native macOS and
|
||||||
|
Windows wheels were unaffected (Security.framework / SChannel). As a result
|
||||||
|
`0.9.3` shipped to crates.io, Maven Central, NuGet, and npm but not to PyPI;
|
||||||
|
PyPI publishes starting with `0.9.4`.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **`vendored-tls` feature** on `wickra-data` (and the Python binding): builds the
|
||||||
|
`live-binance` TLS stack against a statically compiled OpenSSL. Off by default;
|
||||||
|
used by the release wheels and exercised on every PR by a `manylinux` /
|
||||||
|
`musllinux` container build-smoke CI job.
|
||||||
|
|
||||||
|
|
||||||
## [0.9.3] - 2026-06-17
|
## [0.9.3] - 2026-06-17
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
@@ -1810,7 +1836,8 @@ public API changes.
|
|||||||
optional Binance live feed.
|
optional Binance live feed.
|
||||||
- Bindings for Python, Node.js, and WebAssembly.
|
- Bindings for Python, Node.js, and WebAssembly.
|
||||||
|
|
||||||
[Unreleased]: https://github.com/wickra-lib/wickra/compare/v0.9.3...HEAD
|
[Unreleased]: https://github.com/wickra-lib/wickra/compare/v0.9.4...HEAD
|
||||||
|
[0.9.4]: https://github.com/wickra-lib/wickra/compare/v0.9.3...v0.9.4
|
||||||
[0.9.3]: https://github.com/wickra-lib/wickra/compare/v0.9.2...v0.9.3
|
[0.9.3]: https://github.com/wickra-lib/wickra/compare/v0.9.2...v0.9.3
|
||||||
[0.9.2]: https://github.com/wickra-lib/wickra/compare/v0.9.1...v0.9.2
|
[0.9.2]: https://github.com/wickra-lib/wickra/compare/v0.9.1...v0.9.2
|
||||||
[0.9.1]: https://github.com/wickra-lib/wickra/compare/v0.9.0...v0.9.1
|
[0.9.1]: https://github.com/wickra-lib/wickra/compare/v0.9.0...v0.9.1
|
||||||
|
|||||||
Generated
+19
-9
@@ -907,6 +907,15 @@ version = "0.2.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
|
checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "openssl-src"
|
||||||
|
version = "300.5.4+3.5.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openssl-sys"
|
name = "openssl-sys"
|
||||||
version = "0.9.116"
|
version = "0.9.116"
|
||||||
@@ -915,6 +924,7 @@ checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"libc",
|
"libc",
|
||||||
|
"openssl-src",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
"vcpkg",
|
"vcpkg",
|
||||||
]
|
]
|
||||||
@@ -1775,7 +1785,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra"
|
name = "wickra"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"approx",
|
"approx",
|
||||||
"criterion",
|
"criterion",
|
||||||
@@ -1786,7 +1796,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-bench"
|
name = "wickra-bench"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"criterion",
|
"criterion",
|
||||||
"kand",
|
"kand",
|
||||||
@@ -1798,7 +1808,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-c"
|
name = "wickra-c"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"tokio",
|
"tokio",
|
||||||
"wickra-core",
|
"wickra-core",
|
||||||
@@ -1807,7 +1817,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-core"
|
name = "wickra-core"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"approx",
|
"approx",
|
||||||
"proptest",
|
"proptest",
|
||||||
@@ -1817,7 +1827,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-data"
|
name = "wickra-data"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"approx",
|
"approx",
|
||||||
"csv",
|
"csv",
|
||||||
@@ -1836,7 +1846,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-examples"
|
name = "wickra-examples"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"tokio",
|
"tokio",
|
||||||
@@ -1846,7 +1856,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-node"
|
name = "wickra-node"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"napi",
|
"napi",
|
||||||
"napi-build",
|
"napi-build",
|
||||||
@@ -1858,7 +1868,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-python"
|
name = "wickra-python"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytemuck",
|
"bytemuck",
|
||||||
"pyo3",
|
"pyo3",
|
||||||
@@ -1869,7 +1879,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wickra-wasm"
|
name = "wickra-wasm"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"console_error_panic_hook",
|
"console_error_panic_hook",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
|
|||||||
+3
-3
@@ -14,7 +14,7 @@ members = [
|
|||||||
exclude = ["fuzz"]
|
exclude = ["fuzz"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
authors = ["kingchenc <support@wickra.org>"]
|
authors = ["kingchenc <support@wickra.org>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.86"
|
rust-version = "1.86"
|
||||||
@@ -26,8 +26,8 @@ keywords = ["finance", "trading", "indicators", "technical-analysis", "ta"]
|
|||||||
categories = ["finance", "mathematics", "science"]
|
categories = ["finance", "mathematics", "science"]
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
wickra-core = { path = "crates/wickra-core", version = "0.9.3" }
|
wickra-core = { path = "crates/wickra-core", version = "0.9.4" }
|
||||||
wickra-data = { path = "crates/wickra-data", version = "0.9.3" }
|
wickra-data = { path = "crates/wickra-data", version = "0.9.4" }
|
||||||
|
|
||||||
thiserror = "2"
|
thiserror = "2"
|
||||||
rayon = "1.10"
|
rayon = "1.10"
|
||||||
|
|||||||
+3
-3
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
## Supported versions
|
## Supported versions
|
||||||
|
|
||||||
Wickra is pre-1.0. Security fixes are applied to the latest released `0.9.3`
|
Wickra is pre-1.0. Security fixes are applied to the latest released `0.9.4`
|
||||||
version only; please upgrade to the newest release before reporting an issue.
|
version only; please upgrade to the newest release before reporting an issue.
|
||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 0.9.3 (latest) | :white_check_mark: |
|
| 0.9.4 (latest) | :white_check_mark: |
|
||||||
| < 0.9.3 | :x: |
|
| < 0.9.4 | :x: |
|
||||||
|
|
||||||
## Reporting a vulnerability
|
## Reporting a vulnerability
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<!-- NuGet package metadata -->
|
<!-- NuGet package metadata -->
|
||||||
<PackageId>Wickra</PackageId>
|
<PackageId>Wickra</PackageId>
|
||||||
<Version>0.9.3</Version>
|
<Version>0.9.4</Version>
|
||||||
<Authors>kingchenc</Authors>
|
<Authors>kingchenc</Authors>
|
||||||
<Description>High-performance streaming technical-analysis indicators (514 indicators) for .NET, backed by the native Rust core via the Wickra C ABI.</Description>
|
<Description>High-performance streaming technical-analysis indicators (514 indicators) for .NET, backed by the native Rust core via the Wickra C ABI.</Description>
|
||||||
<PackageLicenseExpression>MIT OR Apache-2.0</PackageLicenseExpression>
|
<PackageLicenseExpression>MIT OR Apache-2.0</PackageLicenseExpression>
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ Maven:
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wickra</groupId>
|
<groupId>org.wickra</groupId>
|
||||||
<artifactId>wickra</artifactId>
|
<artifactId>wickra</artifactId>
|
||||||
<version>0.9.3</version>
|
<version>0.9.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
Gradle:
|
Gradle:
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
implementation("org.wickra:wickra:0.9.3")
|
implementation("org.wickra:wickra:0.9.4")
|
||||||
```
|
```
|
||||||
|
|
||||||
The native library ships prebuilt per platform (Linux, macOS, Windows — x64 and
|
The native library ships prebuilt per platform (Linux, macOS, Windows — x64 and
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>org.wickra</groupId>
|
<groupId>org.wickra</groupId>
|
||||||
<artifactId>wickra</artifactId>
|
<artifactId>wickra</artifactId>
|
||||||
<version>0.9.3</version>
|
<version>0.9.4</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Wickra</name>
|
<name>Wickra</name>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-darwin-arm64",
|
"name": "wickra-darwin-arm64",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.darwin-arm64.node",
|
"main": "wickra.darwin-arm64.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-darwin-x64",
|
"name": "wickra-darwin-x64",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.darwin-x64.node",
|
"main": "wickra.darwin-x64.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-linux-arm64-gnu",
|
"name": "wickra-linux-arm64-gnu",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"description": "Native binding for wickra (linux arm64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (linux arm64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.linux-arm64-gnu.node",
|
"main": "wickra.linux-arm64-gnu.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-linux-x64-gnu",
|
"name": "wickra-linux-x64-gnu",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"description": "Native binding for wickra (linux x64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (linux x64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.linux-x64-gnu.node",
|
"main": "wickra.linux-x64-gnu.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-win32-arm64-msvc",
|
"name": "wickra-win32-arm64-msvc",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"description": "Native binding for wickra (Windows arm64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (Windows arm64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.win32-arm64-msvc.node",
|
"main": "wickra.win32-arm64-msvc.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra-win32-x64-msvc",
|
"name": "wickra-win32-x64-msvc",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"description": "Native binding for wickra (Windows x64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
"description": "Native binding for wickra (Windows x64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
|
||||||
"main": "wickra.win32-x64-msvc.node",
|
"main": "wickra.win32-x64-msvc.node",
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
Generated
+20
-20
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra",
|
"name": "wickra",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "wickra",
|
"name": "wickra",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"license": "MIT OR Apache-2.0",
|
"license": "MIT OR Apache-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@napi-rs/cli": "^2.18.0"
|
"@napi-rs/cli": "^2.18.0"
|
||||||
@@ -15,12 +15,12 @@
|
|||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"wickra-darwin-arm64": "0.9.3",
|
"wickra-darwin-arm64": "0.9.4",
|
||||||
"wickra-darwin-x64": "0.9.3",
|
"wickra-darwin-x64": "0.9.4",
|
||||||
"wickra-linux-arm64-gnu": "0.9.3",
|
"wickra-linux-arm64-gnu": "0.9.4",
|
||||||
"wickra-linux-x64-gnu": "0.9.3",
|
"wickra-linux-x64-gnu": "0.9.4",
|
||||||
"wickra-win32-arm64-msvc": "0.9.3",
|
"wickra-win32-arm64-msvc": "0.9.4",
|
||||||
"wickra-win32-x64-msvc": "0.9.3"
|
"wickra-win32-x64-msvc": "0.9.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@napi-rs/cli": {
|
"node_modules/@napi-rs/cli": {
|
||||||
@@ -41,8 +41,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/wickra-darwin-arm64": {
|
"node_modules/wickra-darwin-arm64": {
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/wickra-darwin-arm64/-/wickra-darwin-arm64-0.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/wickra-darwin-arm64/-/wickra-darwin-arm64-0.9.4.tgz",
|
||||||
"integrity": "sha512-4eZiBR/yGUdr4nzhEUFy2i69XgNx64iI2ax/LPamsThgylC0KpHOZKK19QzJ2d9KbK4C8nMjME5FLuR+4GNEwQ==",
|
"integrity": "sha512-4eZiBR/yGUdr4nzhEUFy2i69XgNx64iI2ax/LPamsThgylC0KpHOZKK19QzJ2d9KbK4C8nMjME5FLuR+4GNEwQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
@@ -57,8 +57,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/wickra-darwin-x64": {
|
"node_modules/wickra-darwin-x64": {
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/wickra-darwin-x64/-/wickra-darwin-x64-0.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/wickra-darwin-x64/-/wickra-darwin-x64-0.9.4.tgz",
|
||||||
"integrity": "sha512-6hf8zI3QPjTFp4zCpmgUwDvNtu6jHqNUHKD5e55POo0CgA52HkpyxSPtVm8TGTIZDI7kPjlbOdBM8CJ76mmXwA==",
|
"integrity": "sha512-6hf8zI3QPjTFp4zCpmgUwDvNtu6jHqNUHKD5e55POo0CgA52HkpyxSPtVm8TGTIZDI7kPjlbOdBM8CJ76mmXwA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
@@ -73,8 +73,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/wickra-linux-arm64-gnu": {
|
"node_modules/wickra-linux-arm64-gnu": {
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/wickra-linux-arm64-gnu/-/wickra-linux-arm64-gnu-0.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/wickra-linux-arm64-gnu/-/wickra-linux-arm64-gnu-0.9.4.tgz",
|
||||||
"integrity": "sha512-kSe6y0xBMSiqdPLXNjwop5WZdHtvdBNKSEBCwZ4hFq33p4apW25/wrlzv9/oDuyD4kuPabJEhCCnFOplh58CUg==",
|
"integrity": "sha512-kSe6y0xBMSiqdPLXNjwop5WZdHtvdBNKSEBCwZ4hFq33p4apW25/wrlzv9/oDuyD4kuPabJEhCCnFOplh58CUg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
@@ -89,8 +89,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/wickra-linux-x64-gnu": {
|
"node_modules/wickra-linux-x64-gnu": {
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/wickra-linux-x64-gnu/-/wickra-linux-x64-gnu-0.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/wickra-linux-x64-gnu/-/wickra-linux-x64-gnu-0.9.4.tgz",
|
||||||
"integrity": "sha512-tWBWS4qz7hxM4xnpFb59bhf6TaLwXq0Z3jEa/2l7r8PiHA94g8r8S53NRMiT+4yiL5hSWe/nUiC/YXdRrhEZ4g==",
|
"integrity": "sha512-tWBWS4qz7hxM4xnpFb59bhf6TaLwXq0Z3jEa/2l7r8PiHA94g8r8S53NRMiT+4yiL5hSWe/nUiC/YXdRrhEZ4g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
@@ -105,8 +105,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/wickra-win32-arm64-msvc": {
|
"node_modules/wickra-win32-arm64-msvc": {
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/wickra-win32-arm64-msvc/-/wickra-win32-arm64-msvc-0.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/wickra-win32-arm64-msvc/-/wickra-win32-arm64-msvc-0.9.4.tgz",
|
||||||
"integrity": "sha512-EXIckHxAtF75PUGDKRzXyqMe9ldP0JjSdu68WFN6iJfp+McYrGu6h40TEJlQ/oUEIoPqiZB/xhVyo/el5Lg7zw==",
|
"integrity": "sha512-EXIckHxAtF75PUGDKRzXyqMe9ldP0JjSdu68WFN6iJfp+McYrGu6h40TEJlQ/oUEIoPqiZB/xhVyo/el5Lg7zw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
@@ -121,8 +121,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/wickra-win32-x64-msvc": {
|
"node_modules/wickra-win32-x64-msvc": {
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/wickra-win32-x64-msvc/-/wickra-win32-x64-msvc-0.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/wickra-win32-x64-msvc/-/wickra-win32-x64-msvc-0.9.4.tgz",
|
||||||
"integrity": "sha512-Yfsqq1Xwp6hdxMyLze411vNdo7BDwI6+lPSe7A9XdqyPecNDbtKwYLpsal2r8EHbNzqM+R8XnuRtUaEQS5VlUQ==",
|
"integrity": "sha512-Yfsqq1Xwp6hdxMyLze411vNdo7BDwI6+lPSe7A9XdqyPecNDbtKwYLpsal2r8EHbNzqM+R8XnuRtUaEQS5VlUQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wickra",
|
"name": "wickra",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.",
|
"description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.",
|
||||||
"author": "kingchenc <support@wickra.org>",
|
"author": "kingchenc <support@wickra.org>",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
@@ -47,12 +47,12 @@
|
|||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"wickra-linux-x64-gnu": "0.9.3",
|
"wickra-linux-x64-gnu": "0.9.4",
|
||||||
"wickra-linux-arm64-gnu": "0.9.3",
|
"wickra-linux-arm64-gnu": "0.9.4",
|
||||||
"wickra-darwin-x64": "0.9.3",
|
"wickra-darwin-x64": "0.9.4",
|
||||||
"wickra-darwin-arm64": "0.9.3",
|
"wickra-darwin-arm64": "0.9.4",
|
||||||
"wickra-win32-x64-msvc": "0.9.3",
|
"wickra-win32-x64-msvc": "0.9.4",
|
||||||
"wickra-win32-arm64-msvc": "0.9.3"
|
"wickra-win32-arm64-msvc": "0.9.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "napi build --platform --release",
|
"build": "napi build --platform --release",
|
||||||
|
|||||||
@@ -17,6 +17,13 @@ publish = false
|
|||||||
name = "_wickra"
|
name = "_wickra"
|
||||||
crate-type = ["cdylib"]
|
crate-type = ["cdylib"]
|
||||||
|
|
||||||
|
[features]
|
||||||
|
# Build the bundled data layer against a statically compiled OpenSSL. The
|
||||||
|
# release workflow (and the manylinux/musllinux CI smoke job) enable this so the
|
||||||
|
# Linux wheels do not depend on system OpenSSL at build time. See the
|
||||||
|
# `vendored-tls` feature in wickra-data for the rationale.
|
||||||
|
vendored-tls = ["wickra-data/vendored-tls"]
|
||||||
|
|
||||||
[lints]
|
[lints]
|
||||||
workspace = true
|
workspace = true
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "wickra"
|
name = "wickra"
|
||||||
version = "0.9.3"
|
version = "0.9.4"
|
||||||
description = "Streaming-first technical indicators: incremental, fast, install-free."
|
description = "Streaming-first technical indicators: incremental, fast, install-free."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Package: wickra
|
Package: wickra
|
||||||
Type: Package
|
Type: Package
|
||||||
Title: Streaming-First Technical Indicators
|
Title: Streaming-First Technical Indicators
|
||||||
Version: 0.9.3
|
Version: 0.9.4
|
||||||
Authors@R: person("Wickra contributors", role = c("aut", "cre"), email = "support@wickra.org")
|
Authors@R: person("Wickra contributors", role = c("aut", "cre"), email = "support@wickra.org")
|
||||||
Description: R bindings for the Wickra technical-analysis library over its C ABI
|
Description: R bindings for the Wickra technical-analysis library over its C ABI
|
||||||
hub. Exposes 514 indicators, each an O(1) streaming state machine shared with
|
hub. Exposes 514 indicators, each an O(1) streaming state machine shared with
|
||||||
|
|||||||
@@ -54,6 +54,15 @@ default = []
|
|||||||
# want. `live-binance` covers both the live WebSocket feed and the historical
|
# want. `live-binance` covers both the live WebSocket feed and the historical
|
||||||
# REST kline fetcher.
|
# REST kline fetcher.
|
||||||
live-binance = ["dep:tokio", "dep:tokio-tungstenite", "dep:futures-util", "dep:url", "dep:ureq", "dep:native-tls"]
|
live-binance = ["dep:tokio", "dep:tokio-tungstenite", "dep:futures-util", "dep:url", "dep:ureq", "dep:native-tls"]
|
||||||
|
# `live-binance` with a statically built OpenSSL instead of the system one. The
|
||||||
|
# native-tls stack (tokio-tungstenite + ureq, unified on the same `native-tls`
|
||||||
|
# crate) links `openssl-sys`, which needs OpenSSL at build time. The manylinux
|
||||||
|
# and musllinux wheel containers do not provide it — manylinux lacks the headers
|
||||||
|
# and the musllinux build cross-compiles against a musl sysroot that has no
|
||||||
|
# OpenSSL at all — so the Linux wheels are built with this feature, which
|
||||||
|
# compiles OpenSSL from source and links it statically. No-op on macOS/Windows,
|
||||||
|
# where native-tls uses Security.framework / SChannel and never pulls openssl-sys.
|
||||||
|
vendored-tls = ["live-binance", "native-tls/vendored"]
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
approx = { workspace = true }
|
approx = { workspace = true }
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>org.wickra.examples</groupId>
|
<groupId>org.wickra.examples</groupId>
|
||||||
<artifactId>wickra-examples</artifactId>
|
<artifactId>wickra-examples</artifactId>
|
||||||
<version>0.9.3</version>
|
<version>0.9.4</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Wickra Java examples</name>
|
<name>Wickra Java examples</name>
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wickra</groupId>
|
<groupId>org.wickra</groupId>
|
||||||
<artifactId>wickra</artifactId>
|
<artifactId>wickra</artifactId>
|
||||||
<version>0.9.3</version>
|
<version>0.9.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
Generated
+7
-7
@@ -14,7 +14,7 @@
|
|||||||
},
|
},
|
||||||
"../../bindings/node": {
|
"../../bindings/node": {
|
||||||
"name": "wickra",
|
"name": "wickra",
|
||||||
"version": "0.9.3",
|
"version": "0.9.4",
|
||||||
"license": "MIT OR Apache-2.0",
|
"license": "MIT OR Apache-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@napi-rs/cli": "^2.18.0"
|
"@napi-rs/cli": "^2.18.0"
|
||||||
@@ -23,12 +23,12 @@
|
|||||||
"node": ">= 20"
|
"node": ">= 20"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"wickra-darwin-arm64": "0.9.3",
|
"wickra-darwin-arm64": "0.9.4",
|
||||||
"wickra-darwin-x64": "0.9.3",
|
"wickra-darwin-x64": "0.9.4",
|
||||||
"wickra-linux-arm64-gnu": "0.9.3",
|
"wickra-linux-arm64-gnu": "0.9.4",
|
||||||
"wickra-linux-x64-gnu": "0.9.3",
|
"wickra-linux-x64-gnu": "0.9.4",
|
||||||
"wickra-win32-arm64-msvc": "0.9.3",
|
"wickra-win32-arm64-msvc": "0.9.4",
|
||||||
"wickra-win32-x64-msvc": "0.9.3"
|
"wickra-win32-x64-msvc": "0.9.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/wickra": {
|
"node_modules/wickra": {
|
||||||
|
|||||||
Reference in New Issue
Block a user