Skip to content

Releases: cotrin8672/matlas

matlas v0.7.0

Choose a tag to compare

@cotrin8672 cotrin8672 released this 25 Sep 05:29

Changes

  • Allow WorkspaceScope and MatFile handles to coexist through shared Matlab borrows.
  • Reject property access, generic MAT-file writes, and full-value MAT-file reads while a workspace value is borrowed.
  • Add PlainArrayRef and MatFile::put_plain for direct MAT-file writes of numeric, logical, and character arrays, including supported sparse arrays. Cell, struct, string, and object arrays are excluded.
  • Document the callback audit and add MATLAB integration coverage for guarded operations and v7.3 primitive writes.

Validation

Passed cargo test --workspace --locked, Clippy with warnings denied, rustdoc with warnings denied, Rust 1.77 workspace build, cargo package --locked, API coverage audit, and the MATLAB R2024a integration suite (156 array-direction checks across five formats).

matlas v0.6.0

Choose a tag to compare

@cotrin8672 cotrin8672 released this 25 Sep 02:45

matlas v0.6.0

  • Convert MATLAB character rows and scalar string values to Rust text with ArrayRef::to_text, preserving Unicode and embedded NUL characters and rejecting missing strings.
  • Read and create logical scalars with ArrayRef::logical_scalar and Matlab::logical_scalar.
  • Receive fixed callback outputs through Matlab::call_array::<N> and WorkspaceScope::call_array::<N>.
  • Set validated MATLAB exception identifiers with Error::with_id.
  • Declare fixed MEX argument counts with Inputs<'mex, N> and Outputs<'mex, N>; inputs.into_array() supports array destructuring. Existing variable-count handlers remain supported.

Compatibility: Error now has a private identifier field, so construct errors with Error::new instead of a struct literal.

Validated with the full MATLAB R2024a integration suite, Rust 1.77.0 build, Clippy, docs, API coverage audit, and cargo package --locked.

matlas v0.5.0

Choose a tag to compare

@cotrin8672 cotrin8672 released this 24 Sep 12:13

Workspace pointer handoff

  • Add Matlab::workspace_scope, WorkspaceScope::get, and consuming WorkspaceScope::call so multiple mexGetVariablePtr values can be passed to MATLAB without a Rust-side array copy.
  • Accept ordinary ArrayRef inputs alongside workspace values in callback argument order. Reject a callback while an unused workspace value remains live.
  • Replace Matlab::workspace_borrow and WorkspaceRef with the scope API.

Validation

Rust tests, Clippy, docs, API coverage audit, and cargo package --locked passed. The MATLAB integration suite passed on R2024a, and the workspace built with Rust 1.77.0.

matlas v0.4.0

Choose a tag to compare

@cotrin8672 cotrin8672 released this 23 Sep 04:46

First release under the matlas name. Provides ownership-aware Rust APIs for MATLAB R2025a Matrix, MEX, and MAT-file interfaces. Validated on Windows with MATLAB R2025a; building requires MATLAB headers and libraries.