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.
Summary
Section titled “Summary”- 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
Packaging and release guidance
Section titled “Packaging and release guidance”- 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.
See also
Section titled “See also”- Architecture guide (Rust/Python architecture)
- Method metadata spec (
specs/core-api/method-metadata.md)