runmat-plot 0.5.0

GPU-accelerated and static plotting for RunMat with WGPU and Plotters
Documentation
[package]
license = "MIT"
name = "runmat-plot"
version = "0.5.0"
edition = "2021"
authors = ["Dystr Team"]
license-file = "LICENSE"
description = "GPU-accelerated and static plotting for RunMat with WGPU and Plotters"
homepage = "https://runmat.com"
repository = "https://github.com/runmat-org/runmat"

[dependencies]
# Interactive GPU-accelerated plotting
wgpu = "0.19.1"
winit = { version = "0.29.11", optional = true }
egui = { version = "0.27.2", optional = true }
egui-wgpu = { version = "0.27.2", optional = true }
egui-winit = { version = "0.27.2", optional = true }
bytemuck = { version = "1.0", features = ["derive"] }

# Math and geometry
glam = "0.24"

# Async runtime for WGPU
pollster = "0.3"
futures = "0.3"

# Runtime environment detection
log = "0.4"
tracing = "0.1"
once_cell = "1.19"

# Web browser integration
webbrowser = "0.8"

# Serialization and config
serde = { workspace = true }
serde_json = { workspace = true }

# Image processing for export
image = { version = "0.24", features = ["png", "jpeg"] }
font8x8 = "0.3"
rfd = { version = "0.14", optional = true }



# RunMat integration
thiserror = { workspace = true }
runmat-time = { workspace = true }
runmat-thread-local = { workspace = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
web-sys = { version = "0.3", features = [
    "HtmlCanvasElement",
    "OffscreenCanvas",
    "Window",
    "Document",
    "DomRect"
] }
tokio = { version = "1.0", default-features = false, features = ["sync", "time"] }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1.0", features = ["rt-multi-thread", "macros", "sync", "time", "net", "io-util"] }

[target.'cfg(target_os = "macos")'.dependencies]
libc = "0.2"

[features]
default = ["static", "gui"]
static = []  # Static image export (always enabled)
# Lightweight egui overlay renderer (usable on wasm without winit).
egui-overlay = ["egui", "egui-wgpu"]
# Interactive GUI (native windowing + egui integration).
gui = ["winit", "egui-overlay", "egui-winit", "rfd"]
web = []  # WebGL backend for web

[dev-dependencies]
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"] }