v0.7.0 - Rust-Accelerated Backend and Python Wrapper
Release v0.7.0 — Rust-Accelerated Backend & Python Wrapper
This release introduces major performance and usability improvements to the Luna simulation suite, including a high-performance Rust core, a native Python wrapper, and customizable material properties.
What's New
Rust-Accelerated Backend (luna-rust)
- Migrated core waveguide solvers and numerical integration algorithms to a stateless, cache-aligned Rust codebase.
- Added multithreaded diffraction (QDHT) solver support via
rayon. - Implemented zero-copy C-FFI memory boundaries for seamless in-place data transfer between Julia and Rust.
Native Python API
- Released a pip-installable python package
luna-rustunderpython/. - Embedded Julia interface calls using
juliacallandjuliapkg. - Built a zero-copy NumPy array wrapper
LunaOutputto convert simulation output vectors on-the-fly.
Dynamic Material Properties
- Added a global material registry with runtime registration APIs (
register_material!) for gases and glasses. - Enabled loading custom Sellmeier configurations from TOML files without modifying package source code.
Spelled-Out Greek Keyword Aliases
- Supported ASCII keyword arguments (e.g.,
lambda0,tau_fwhm,phi) interchangeably with Unicode keywords (λ0,τfwhm,ϕ) across all pulse constructors and entrypoints.
Parallelized CI Pipeline
- Restructured the 31-test-set suite into 5 parallel job groups (
physics,simulation,io,fields,rust), reducing CI wall-clock validation times from 32 minutes down to ~8 minutes.