wolfram-export 0.6.0-alpha.3

Unified #[export] runtime for Wolfram LibraryLink: native MArgument, WSTP Link, and typed WXF ByteArray modes — pick the modes you need via feature flags.
Documentation

Unified runtime for #[export]-marked Wolfram LibraryLink functions.

Pick modes via Cargo features:

wolfram-export = { version = "0.5", features = ["wxf"] }   # typed WXF
wolfram-export = { version = "0.5", features = ["wstp"] }  # WSTP Link
wolfram-export = "0.5"                                     # native (default)

Then in your code:

use wolfram_export::export;

#[export]                  fn add(a: f64, b: f64) -> f64 { a + b }
#[export(wstp)]            fn foo(link: &mut Link) { /* ... */ }
#[export(wxf)]             fn dot(a: Vec<f64>, b: Vec<f64>) -> f64 { /* ... */ }

Each mode's wire shape, runtime, and Cargo dep set live in its own feature-gated submodule below. The ExportEntry inventory and the __wolfram_manifest__ C symbol are always on (they're tiny and how the cargo wl build tool discovers exports).