runmat-runtime 0.2.7

Core runtime for RunMat with builtins, BLAS/LAPACK integration, and execution APIs
Documentation
[package]
license = "MIT"
name = "runmat-runtime"
version = "0.2.7"
edition = "2021"
authors = ["Dystr Team"]
license-file = "LICENSE"
description = "Core runtime for RunMat with builtins, BLAS/LAPACK integration, and execution APIs"
homepage = "https://runmat.org"
repository = "https://github.com/runmat-org/runmat"
build = "build.rs"
links = "runmat_runtime_native"

[dependencies]
inventory = { workspace = true }
runmat-builtins = { workspace = true }
runmat-macros = { workspace = true }
runmat-plot = { workspace = true }
runmat-accelerate-api = { workspace = true }
runmat-gc = { workspace = true }
runmat-gc-api = { workspace = true }
glam = "0.24"
tokio = { workspace = true }
once_cell = "1.19"
encoding_rs = "0.8.35"
chrono = { workspace = true }
libc = "0.2"
reqwest = { version = "0.12", default-features = false, features = ["blocking", "charset", "gzip", "json", "rustls-tls"] }
log = { workspace = true }
num-complex = "0.4"
nalgebra = "0.32"
rustfft = "6.2"

# BLAS/LAPACK bindings for high-performance linear algebra (optional)
blas = { version = "0.22", optional = true }
lapack = { version = "0.19", optional = true }
regex = "1.11.1"
glob = "0.3"

# Platform-specific BLAS/LAPACK implementations
[target.'cfg(target_os = "macos")'.dependencies]
# Use Apple's Accelerate framework on macOS (works on both Intel and Apple Silicon)
accelerate-src = { version = "0.3", optional = true }

[target.'cfg(not(target_os = "macos"))'.dependencies]
# Use system OpenBLAS via vcpkg on Windows and distro packages on Linux; also expose CBLAS symbols
openblas-src = { version = "0.10", features = ["system", "cblas"], optional = true }

[features]
default = ["gui"]

# GUI plotting support
gui = ["runmat-plot/gui"]

# Jupyter notebook integration
jupyter = ["runmat-plot/jupyter"]

# High-performance BLAS/LAPACK support using platform-native libraries
# macOS: Uses Apple's Accelerate framework (WORKS on both Intel and Apple Silicon!)
# Other platforms: Uses OpenBLAS
# Usage: cargo test --features blas-lapack
blas-lapack = ["blas", "lapack", "accelerate-src", "openblas-src"]

# BLAS-only support (no LAPACK)
# macOS: Uses Accelerate
# Other platforms: Uses OpenBLAS
blas-only = ["blas", "accelerate-src", "openblas-src"]

# Internal testing utilities (class registry seeders)
test-classes = []

# Documentation/export utilities
doc_export = ["serde", "serde_yaml", "clap"]

# Enable WGPU-backed tests (tests enable runmat-accelerate's feature through dev-dependencies)
wgpu = []

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_yaml]
version = "0.9"
optional = true

[dependencies.clap]
version = "4.5"
features = ["derive"]
optional = true

[[bin]]
name = "export_builtins"
path = "src/bin/export_builtins.rs"
required-features = ["doc_export"]