Skip to content

v0.7.0 - Rust-Accelerated Backend and Python Wrapper

Choose a tag to compare

@vdiego28 vdiego28 released this 23 May 21:41
· 325 commits to main since this release

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-rust under python/.
  • Embedded Julia interface calls using juliacall and juliapkg.
  • Built a zero-copy NumPy array wrapper LunaOutput to 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.