Skip to content

Runtime and optional accelerators

The Rust workspace is the sole execution authority for stable v1 numerical policy. Python calls the core through PyO3, while R and Julia use the versioned C ABI. A binding may validate and convert data, but it must not implement an independent stable kernel or silently fall back to one.

  • Rust is the stable CPU reference and production execution core
  • Python/PyO3, R, and Julia are thin adapters over that core
  • JAX is limited to optional extension and research workflows
  • Apple Metal is available as an optional internal backend on macOS Apple Silicon when PyTorch provides an MPS device
  • Stable public APIs work without JAX, GPU, web, widget, or distributed dependencies
  • Backend-dependent results must disclose that status explicitly
  • Keep the Apple Metal backend optional and runtime-detected
  • Preserve Rust CPU execution as the authoritative reference path
  • Treat the benchmark handoff packet as the release evidence for device-backed comparison claims
  • Do not introduce a public API change just to expose the backend

Python-facing data structures may remain xarray-backed, but their stable numerical results must come from the Rust core.