• Wrappers and executors for Rust functions.
  • Manages receiving and sending values across the FFI boundary.


  • Macro helper to instantiate an RustOpaque<dyn Trait>, as Rust does not support custom DSTs on stable.
  • Spawn a task using the internal thread pool. Interprets the parameters as a list of captured transferables to send to this thread.
  • On WASM, [JsValue][wasm_bindgen::JsValue]s cannot be shared between scopes but instead can be “transferred”. Rust however is not aware of transferables and therefore cannot capture these values. This macro wraps a closure and returns a [TransferClosure][crate::ffi::TransferClosure] on WASM platforms which will capture these special values, or a normal FnOnce on other platforms. Note that the parameter names must match available variables/bindings from the outer scope.


  • Use this struct in return type of your function, in order to tell the code generator the function should return synchronously. Otherwise, it is by default asynchronously.


  • Marker trait for types that are safe to share with Dart and can be dropped safely in case of a panic.

Attribute Macros

  • Attribute to guide code generation.