Skip to content

Bump uniffi from 0.24.3 to 0.32.0 - #191

Open
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/cargo/uniffi-0.32.0
Open

Bump uniffi from 0.24.3 to 0.32.0#191
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/cargo/uniffi-0.32.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 27, 2026

Copy link
Copy Markdown
Contributor

Bumps uniffi from 0.24.3 to 0.32.0.

Changelog

Sourced from uniffi's changelog.

v0.32.0 (backend crates: v0.32.0) - (2026-06-30)

⚠️ Breaking Changes ⚠️

  • Kotlin and Python now fail to generate bindings when there are async primary constructors. Previously these languages skipped the constructor in this case or generated a constructor that always threw. You can get similar behavior by adding the primary constructor to the uniffi.toml excludes list in uniffi.toml (e.g. `excludes = ["MyObject.new"])
  • Ruby: Force named parameters for enum constructors (#2880)
  • The --config flag now expects a global config file rather than a flat uniffi.toml-style override. Old-style files will produce a warning and be ignored. See #2866
  • [ByRef] bytes UDL arguments now map to &[u8] on the Rust side instead of &Vec<u8>. UDL-defined functions whose Rust implementations take &Vec<u8> must change to &[u8]. Proc-macro signatures (fn foo(x: &[u8])) are unchanged. On the Kotlin side, call sites must now pass a direct java.nio.ByteBuffer rather than ByteArray; migrate with ByteBuffer.allocateDirect(arr.size).put(arr).flip(). Swift (Data) and Python (bytes) call sites are unchanged. (#2878)
  • Reworked the experimental pipeline bindgen code. Any external binding generators using this will need to be reworked as well. See #2787 for examples of how this can be done.

⚠️ Breaking Changes for external bindings authors ⚠️

  • The signature for CrateConfigSupplier::from_cargo_metadata_command has changed. It now inputs a MetadataCommand instance and a CargoMetadataOptions rather than just a no_deps flag.

What's Fixed

  • Fixed bug that sometimes prevented renaming items inside a submodule #2792
  • Exempted UniFfiTag from clippy::exhaustive_structs since downstream projects may depend on it #2809
  • Fixed compile errors when exporting ambiguous method names #2937
  • Ruby: Code for all kinds of enums and custom types is now correctly generated #2880 and #2891

⚠️ Breaking Changes for external bindings authors ⚠️

  • There's a new GlobalConfig struct for managing config. It replaces BindgenPathsLayer::get_config() method which has been removed. See #2866.
  • [ByRef] bytes arguments now travel across the FFI as a ForeignBytes (pointer + length) value rather than a RustBuffer. External bindings need to accept the foreign-language byte buffer at the call site and lower it to ForeignBytes for the duration of the call (no copy). (#2878)

What's New?

  • Global config file support via --config. See the docs.

  • Traits can now be exported with #[uniffi::export(foreign)] for foreign-only implementations, or #[uniffi::export(rust, foreign)] for both Rust and foreign implementations. The with_foreign flag is deprecated in favor of rust, foreign.

  • Recursive enums are now supported. UniFFI automatically detects when enum and record types participate in cycles — self-referential, mutually recursive, or cycling through a record — and generates appropriate bindings: indirect in Swift, forward references in Python (#2834).

  • Box<T> now automatically implements FFI traits when T implements them, allowing direct use in enum variants and function parameters without NewType wrappers (#2808)

  • Record fields can now be renamed with the proc-macro name = "new_field_name" attribute (#2794)

  • Items can be excluded from the generated bindings using uniffi.toml.

  • Added mutable_records configuration option to allow specific records to remain mutable even when generate_immutable_records is enabled (Kotlin and Swift).

  • Kotlin objects now have an uniffiIsDestroyed property that returns true if the Rust reference no longer exists (#2825)

  • Updated askama version to 0.15.6

  • Custom Types can have docstrings in some languages (#2853)

  • Ruby: Expose standard Rust traits for generated ruby code (#2883)

  • Ruby: Add support for sync foreign traits (#2916)

  • Ruby: Add async support (#2923)

  • Added zero-copy transfer of &[u8] / [ByRef] bytes arguments from foreign code to Rust. Kotlin (java.nio.ByteBuffer, must be direct), Swift (Data), and Python (bytes-like, buffer protocol) pass byte buffers as pointer + length (ForeignBytes) rather than copying through RustBuffer. Not yet supported on Ruby, and not yet supported in async functions on any language (#2878).

  • #[uniffi::export(async_runtime = "tokio")] can now be applied to trait exports, wrapping each method's FFI scaffolding future in async_compat::Compat the same way it does for inherent impls and free functions (#2899).

  • Added support for using HashSet with proc-macros

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [uniffi](https://github.com/mozilla/uniffi-rs) from 0.24.3 to 0.32.0.
- [Changelog](https://github.com/mozilla/uniffi-rs/blob/main/CHANGELOG.md)
- [Commits](mozilla/uniffi-rs@v0.24.3...v0.32.0)

---
updated-dependencies:
- dependency-name: uniffi
  dependency-version: 0.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Jul 27, 2026
@socket-security

socket-security Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedcargo/​uniffi@​0.24.3 ⏵ 0.32.01001009310070

View full report

@socket-security

socket-security Bot commented Jul 27, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
License policy violation: cargo uniffi_bindgen under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/Cargo.toml)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/test.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/rust_buffer.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/enum_.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/test.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/cargo_metadata.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/function.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/record.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/exclude.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/filters.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/scaffolding/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/ffi_async_data.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/callback_interfaces.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/error.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/objects.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/types.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/ffi_types.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/checksums.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/initial/context.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/config.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/miscellany.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/record.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/library_mode.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/callback_interface.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/object.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/record.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/root.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/nodes.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/primitives.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/modules.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/rust_future.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/ffi.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/ruby/test.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/initial/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/callable.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/visit_mut.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/callback_interfaces.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/lib.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/macro_metadata/ci.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/context.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/enums.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/records.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/object.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/type_definitions_from_api.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/initial/from_uniffi_meta.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/nodes.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/object.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/types.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/compounds.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/custom.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/variant.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/default.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/initial/types.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/custom.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/enums.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/miscellany.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/universe.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/names.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/macro_metadata/extract.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/infer_recursive_enums.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/ffi_functions.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindgen_paths.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/sort.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/rename.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/uniffi_traits.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/initial/nodes.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/ruby/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/global_config.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/namespaces.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/default.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/interfaces.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/rename.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/compounds.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/enum_.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/loader.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/primitives.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/exclude.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/macro_metadata/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/custom_type.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/ffi_types.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/callbacks.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/swift/gen_swift/callback_interface.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/interface/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/kotlin/gen_kotlin/enum_.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/pipeline/callables.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/python/test.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/pipeline/general/context.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_bindgen-0.32.0/src/bindings/ruby/gen_ruby/mod.rs)

From: ?cargo/uniffi@0.32.0cargo/uniffi_bindgen@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_bindgen@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi_build under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_build-0.32.0/src/lib.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_build-0.32.0/Cargo.toml)

From: ?cargo/uniffi@0.32.0cargo/uniffi_build@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_build@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi_core under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/ffidefault.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/Cargo.toml)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/rustbuffer.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/foreignfuture.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/metadata.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi_converter_traits.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/ffiserialize.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/handle.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/rustcalls.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi_converter_impls.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/foreigncallbacks.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/lib.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/rustfuture/scheduler.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/rustfuture/future.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/rustfuture/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/callbackinterface.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/oneshot.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_core-0.32.0/src/ffi/foreignbytes.rs)

From: ?cargo/uniffi@0.32.0cargo/uniffi_core@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_core@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi_internal_macros under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_internal_macros-0.32.0/src/map_node.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_internal_macros-0.32.0/Cargo.toml)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_internal_macros-0.32.0/src/node.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_internal_macros-0.32.0/src/checksum.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_internal_macros-0.32.0/src/lib.rs)

From: ?cargo/uniffi@0.32.0cargo/uniffi_internal_macros@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_internal_macros@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi_macros under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/Cargo.toml)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/export/item.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/remote.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/export/callback_interface.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/util.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/fnsig.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/export.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/export/scaffolding.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/export/utrait.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/setup_scaffolding.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/derive.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/custom.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/default.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/export/trait_interface.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/test.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/lib.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_macros-0.32.0/src/ffiops.rs)

From: ?cargo/uniffi@0.32.0cargo/uniffi_macros@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_macros@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi_meta under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_meta-0.32.0/src/types.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_meta-0.32.0/src/reader.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_meta-0.32.0/src/ffi_names.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_meta-0.32.0/src/metadata.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_meta-0.32.0/src/group.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_meta-0.32.0/Cargo.toml)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_meta-0.32.0/src/lib.rs)

From: ?cargo/uniffi@0.32.0cargo/uniffi_meta@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_meta@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi_pipeline under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_pipeline-0.32.0/src/lib.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_pipeline-0.32.0/src/pipeline.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_pipeline-0.32.0/src/map_node.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_pipeline-0.32.0/src/node.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_pipeline-0.32.0/Cargo.toml)

From: ?cargo/uniffi@0.32.0cargo/uniffi_pipeline@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_pipeline@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi_udl under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/converters/enum_.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/finder.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/converters/interface.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/converters/mod.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/literal.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/resolver.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/collectors.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/Cargo.toml)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/attributes.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/converters/callables.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi_udl-0.32.0/src/lib.rs)

From: ?cargo/uniffi@0.32.0cargo/uniffi_udl@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi_udl@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
License policy violation: cargo uniffi under MPL-2.0

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi-0.32.0/src/lib.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi-0.32.0/uniffi-bindgen-swift.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi-0.32.0/src/cli/swift.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi-0.32.0/uniffi-bindgen.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi-0.32.0/src/cli/uniffi_bindgen.rs)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi-0.32.0/Cargo.toml)

License: MPL-2.0 - The applicable license policy does not permit this license (5) (uniffi-0.32.0/src/cli/mod.rs)

From: Cargo.lockcargo/uniffi@0.32.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/uniffi@0.32.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

uniffi 0.32's `uniffi-bindgen generate` requires an explicit --out-dir
(it previously defaulted to the UDL's directory). Pass `--out-dir src`
to preserve the original output location (src/uniffi/bindings/bindings.kt)
that the subsequent copy step relies on.

@ev-vaultkeeper ev-vaultkeeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uniffi 0.24.3 → 0.32.0 — review

Verdict: safe to merge. The bump compiles, the generated public Kotlin API is unchanged, and the one real breakage (the deploy script) is fixed in a commit I pushed to this branch.

Where uniffi is used

uniffi is a direct dependency of only kotlin-attestation-bindings (UDL-based: include_scaffolding! in lib.rs, generate_scaffolding in build.rs, and the uniffi-bindgen bin). The core crate and the node/python/wasm/swift bindings do not depend on uniffi, so this bump cannot affect them. Note the kotlin bindings are not built or tested in CI (lint-and-test.yml path filters exclude kotlin-attestation-bindings/**), which is why all PR checks are green regardless.

What I verified locally (uniffi 0.32)

  • cargo build --lib -p kotlin-attestation-bindings — the cdylib compiles (the scaffolding generated from the UDL matches the Rust fn signatures).
  • cargo build --features=uniffi/cli --bin uniffi-bindgen — bindgen bin builds.
  • uniffi-bindgen generate --language kotlin produces bindings with the same public API: attestConnection(cert: ByteArray, ...), attestEnclave(...), data class PcRs, and the same FFI symbol names (uniffi_bindings_fn_func_attest_*).

(FYI: a bare cargo build of the whole workspace fails on the uniffi-bindgen bin because uniffi::uniffi_bindgen_main is gated behind the cli feature — but this is pre-existing; the base branch fails identically. The real build paths from build-libs.sh are cargo build --lib and cargo run --features=uniffi/cli --bin uniffi-bindgen.)

Changelog review (0.24 → 0.32)

I read every release. None of the breaking changes affect this crate because it only exposes two free functions and a plain record — no objects/interfaces, traits, custom/external types, async, or callbacks. The only 0.32 change that could have mattered — [ByRef] bytes now mapping to &[u8]/a direct ByteBuffer — does not apply: the UDL uses plain by-value bytes, which still maps to Vec<u8>/ByteArray (confirmed in the regenerated bindings).

The one breakage — fixed & pushed

uniffi 0.32's uniffi-bindgen generate now requires --out-dir (it used to default to the UDL's directory). The current build-libs.sh call omits it and panics under 0.32. I pushed a commit adding --out-dir src, which preserves the original output location (src/uniffi/bindings/bindings.kt) that the following cp relies on.

Follow-up (handled automatically): stale checked-in bindings.kt

The committed src/uniffi/bindings/bindings.kt was generated by 0.24. Under 0.32 the regenerated file differs: contract version 22 → 30, new checksums, and Kotlin now uses JNA direct mapping. I deliberately did not commit the ~950-line regenerated artifact — it isn't consumed by any build in this repo and build-libs.sh (now fixed) regenerates + copies it into the Android SDK at deploy time. If the stale file were ever paired with a freshly-built 0.32 .so, it fails safely with an explicit UniFFI contract version mismatch: try cleaning and rebuilding error (no silent misbehavior). Recommend regenerating it on the next Android release (the fixed script does this).

Security / supply chain

  • Socket scores uniffi 0.32.0 100/100 supply-chain and 100/100 vulnerability. The only Socket warning is an MPL-2.0 license policy flag on uniffi_bindgen — this is not new (all uniffi crates have always been MPL-2.0) and it's a build-time dependency, not linked into the shipped cdylib (runtime uses uniffi_core).
  • New transitive crates in Cargo.lock (rustix, tempfile, getrandom 0.3, wasip2, wit-bindgen, toml 0.9, askama 0.16, textwrap, dual thiserror 1/2) are pulled in by uniffi_bindgen/uniffi_build at build/codegen time, not into the runtime artifact. Nothing suspicious — all from crates.io with checksums. No runtime attack-surface increase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Development

Successfully merging this pull request may close these issues.

1 participant