[package] name = "vectorhd-core" version = "0.1.0" edition = "2021" description = "VectorHD analytic-optimizer core: exact cell-coverage rasterizer + boundary-integral gradient" license = "MIT OR Apache-2.0" publish = false [lib] # The Python extension must be importable as `vectorhd_core`, so the lib name is fixed here. name = "vectorhd_core" # rlib for the CLI and unit tests; cdylib for both the wasm module and the Python extension. crate-type = ["rlib", "cdylib"] [[bin]] name = "spike-cli" path = "src/bin/spike_cli.rs" [[bin]] name = "window-bench" path = "src/bin/window_bench.rs" # Dependency policy: minimal. serde only for file I/O — nothing numeric. Optional integrations sit # behind features so the core still builds bare for wasm. # No wasm-bindgen: the wasm build exports raw `extern "C"` functions over linear memory # (see src/wasm.rs), which keeps the binary small and measures compute rather than glue. [dependencies] serde = { version = "1", features = ["derive"] } serde_json = "1" pyo3 = { version = "0.29", features = ["extension-module"], optional = true } numpy = { version = "0.29", optional = true } [features] default = [] # `python` is what maturin builds: pyo3 + rust-numpy for zero-copy ndarray views. python = ["dep:pyo3", "dep:numpy"]