github jhugman/uniffi-bindgen-react-native 0.31.0-2
v0.31.0-2

5 hours ago

✨ What's New ✨

  • Records and enums now support methods in TypeScript bindings, tracking uniffi 0.31's new value-type methods feature. Flat enums use direct method calls; tagged enums use a factory pattern (#347).

  • Add support for opting out of generating TypeScript interfaces: bindings.typescript.strictObjectTypes in
    uniffi.toml (#341 by
    @SimonThormeyer).

  • Optional fields in record types no longer need to be explicitly passed as undefined (#358). Thank you @Psycarlo!

🦊 What's Changed

  • Bump uniffi-rs to 0.31.0.
  • Replace deprecated SwiftBindingGenerator/KotlinBindingGenerator with bindings::generate for iOS and Android native bindings.
  • Pin wasm-bindgen to 0.2.100 to avoid a compile-time regression in js-sys.
  • Enable the wasm-unstable-single-threaded feature of uniffi_core in the runtime crate, fixing a Send bound error when building WASM projects (#356). Thank you @SimonThormeyer!
  • Fix Windows path separators in generated CMakeLists.txt, which was preventing bindings generation on Windows (#352). Thank you @DavJCosby!
  • Rename the WASM template Cargo.toml to Cargo.toml.txt so Cargo doesn't pick it up when traversing dependencies (#354). Thank you @marc2332!
  • Stop emitting [profile.release] in generated WASM crates that live inside a workspace (#350).
  • Canonicalize relative paths before comparing them, fixing path resolution issues on some setups (#349).
  • Split the shared codegen extensions into separate modules for each target language (TypeScript, C++, Rust), preparing for the uniffi pipeline API (#353).
  • Replace xtask run with a proc-macro test harness so fixture tests run with cargo test (#355).

⚠️ Breaking Changes

  • uniffi 0.31 changes method checksums (the self type is no longer included), so bindings compiled against 0.30.x are not compatible with 0.31.x. Regenerate your bindings after upgrading.

Full Changelog: 0.30.0-1...0.31.0-2

Don't miss a new uniffi-bindgen-react-native release

NewReleases is sending notifications on new releases.