[package]
license = "MIT"
name = "runmat"
version = "0.2.8"
edition = "2021"
description = "High-performance MATLAB/Octave runtime with Jupyter kernel support"
authors = ["Dystr Team"]
license-file = "LICENSE"
readme = "../README.md"
repository = "https://github.com/runmat-org/runmat"
keywords = ["matlab", "octave", "jupyter", "kernel", "interpreter"]
categories = ["science", "development-tools"]

[[bin]]
name = "runmat"
path = "src/main.rs"

[dependencies]
tokio = { workspace = true }
clap = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = "0.9"
toml = "0.8"
dirs = "5.0"
atty = "0.2"
env_logger = { workspace = true }
log = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
uuid = { workspace = true }
crossbeam-channel = "0.5"
once_cell = "1.19"
ureq = { version = "2.9", default-features = false, features = ["tls", "json"] }
rustyline = "14.0"

# Ensure vendored OpenSSL can be enabled for cross targets (feature unification)
openssl = { version = "0.10", optional = true }
openssl-sys = { version = "0.9.109", optional = true }

# RunMat crates
runmat-kernel = { version = "=0.2.8", path = "../crates/runmat-kernel" }
runmat-repl = { version = "=0.2.8", path = "../crates/runmat-repl" }
runmat-parser = { version = "=0.2.8", path = "../crates/runmat-parser" }
runmat-hir = { version = "=0.2.8", path = "../crates/runmat-hir" }
runmat-ignition = { version = "=0.2.8", path = "../crates/runmat-ignition" }
runmat-runtime = { version = "=0.2.8", path = "../crates/runmat-runtime" }
runmat-turbine = { version = "=0.2.8", path = "../crates/runmat-turbine" }
runmat-gc = { version = "=0.2.8", path = "../crates/runmat-gc" }
runmat-builtins = { version = "=0.2.8", path = "../crates/runmat-builtins" }
runmat-snapshot = { version = "=0.2.8", path = "../crates/runmat-snapshot" }
runmat-plot = { version = "=0.2.8", path = "../crates/runmat-plot" }
runmat-accelerate = { version = "=0.2.8", path = "../crates/runmat-accelerate" }
runmat-accelerate-api = { version = "=0.2.8", path = "../crates/runmat-accelerate-api" }

[features]
# GUI plotting features, BLAS/LAPACK, and WGPU acceleration (enabled by default)
default = ["gui", "blas-lapack", "wgpu"]
wgpu = ["runmat-accelerate/wgpu", "runmat-runtime/wgpu"]
gui = ["runmat-plot/gui"]
blas-lapack = ["runmat-runtime/blas-lapack"]
blas-only = ["runmat-runtime/blas-only"]
vendored-openssl = ["openssl/vendored", "openssl-sys/vendored"]

[dev-dependencies]
tempfile = "3.12" 
serde_json = { workspace = true }
