Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 1, 2025

Bumps uniffi from 0.29.4 to 0.30.0.

Changelog

Sourced from uniffi's changelog.

v0.30.0 (backend crates: v0.30.0) - (2025-10-08)

⚠️ Breaking Changes ⚠️

  • UDL-based trait interfaces must now be wrapped with the #[uniffi::trait_interface] attribute.
  • Python: Trait interface implementations must now inherit from the trait base class. This will look like class PyTraitName(RustTraitName):

What's new?

  • All user-defined types can now be renamed with the proc-macro name = "NewName" attribute (like already supported for methods and constructors) (#2661)
  • Enums and Records support exporting uniffi traits (ie, Display, Hash, Eq etc) (#2555)
  • Support for exporting the Ord trait, allowing objects to be ordered by Rust (#2583).
  • #[uniffi(default)] literals are now optional - eg, #[uniffi(default)] and #[uniffi(default = 0)] are equivalent. Similarly for args; #[uniffi::export(default(arg_name))]. When no literal is specifed, named types (objects, records, etc) can be used as long as they have suitable default values. (#2543). Custom types too (#2603)
  • Custom enum and object types can be used as error type (#2658)
  • Objects can implement external traits (#2430)
  • Fix for external errors when error only used externally (#2641)
  • Kotlin:
    • Switch to JNA direct mapping (#2229)
    • Support throwing external error (#2629)
    • The NoPointer placeholder object used to create fake interface instances has been renamed to NoHandle
  • Python:
    • Improved how default values are handled in function signatures etc and more canonical use of Python dataclasses, all towards making mypy happier (#2552)
    • Methods now have typing annotations for return values (#2625)
    • Fix relative imports (#2657)
    • Fix shadowing param names with internal variables in Python (#2628/#2645)
    • Don't allow objects to be passed as arguments when traits are expected (#2649)
  • Swift:
    • All object protocol conformances are public (#2671)
    • Initialization functions now have a stable ordering when using external types. This makes the generated source files deterministic.

⚠️ Breaking Changes for external bindings authors ⚠️

  • uniffi_bindgen::backend has been removed.
  • #[uniffi(default)] changes how defaults are represented.
  • FfiType::RustArcPtr has been removed and the FFI type for objects/interfaces is now a u64. Bindings authors will need to update their code to reflect this:
    • Lowering/lifting now uses u64 values
    • The free function inputs a u64 handle rather than a raw pointer
    • The clone function inputs and returns a u64 handle rather than a raw pointer
  • Enums and Records can have methods, so the Method now carries self_type instead of the object name. In the templates, for Callable.takes_self() is replaced with Callable.self_type().
  • Trait / Callback interface changes
    • VTable fields are now: free, clone, followed by a field for each interface method. Note That free is now at the start of the vtable rather than the end.
    • Trait interface changes:

... (truncated)

Commits
  • 47cb437 chore: Release
  • 8b78601 chore: Release
  • dd2200e Python: improve default values and use dataclasses to keep mypy happy. (#2552)
  • d15c779 Throw error when objects are passed instead of traits (#2649)
  • eaed3b8 callables should only go through the pipeline once
  • 15738c7 Better FFI tracing
  • 2a311d2 Remove RustBufferByReference
  • 6bb25bd Kotlin: Pass explicit T::class.java to Native.register (#2678)
  • 731ba33 Python: Fix async functions that return external types (#2659)
  • 159006b CHANGELOG tweaks. (#2677)
  • Additional commits viewable in compare view

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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @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)

@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Nov 1, 2025
@dependabot dependabot bot force-pushed the dependabot/cargo/uniffi-0.30.0 branch from bdcfaea to 2734731 Compare November 4, 2025 11:58
Bumps [uniffi](https://github.com/mozilla/uniffi-rs) from 0.29.4 to 0.30.0.
- [Changelog](https://github.com/mozilla/uniffi-rs/blob/main/CHANGELOG.md)
- [Commits](mozilla/uniffi-rs@0.29.4...v0.30.0)

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

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/cargo/uniffi-0.30.0 branch from 2734731 to c672b63 Compare November 6, 2025 09:34
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant