Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 20, 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

You can trigger a rebase of this PR 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)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Nov 20, 2025
@dependabot dependabot bot requested a review from a team as a code owner November 20, 2025 15:06
@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Nov 20, 2025
@github-actions
Copy link

github-actions bot commented Nov 20, 2025

🐰 Bencher Report

Branchdependabot/cargo/uniffi-0.30.0
Testbedubuntu-latest

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkLatencymicroseconds (µs)
Commit add f(group size)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
17,935.00 µs
Commit add f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
737.22 µs
Commit add f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
4,362.50 µs
Commit add f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
7,922.50 µs
Commit add f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
12,051.00 µs
Commit add f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
14,966.00 µs
Commit add f(number clients)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
978,620.00 µs
Commit add f(number clients)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
727.05 µs
Commit add f(number clients)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
79,067.00 µs
Commit add f(number clients)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
214,820.00 µs
Commit add f(number clients)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
420,420.00 µs
Commit add f(number clients)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
669,360.00 µs
Commit pending proposals f(group size)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
115,200.00 µs
Commit pending proposals f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
22,976.00 µs
Commit pending proposals f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
41,563.00 µs
Commit pending proposals f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
57,606.00 µs
Commit pending proposals f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
77,176.00 µs
Commit pending proposals f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
93,071.00 µs
Commit pending proposals f(pending size)/cs1/mem/1📈 view plot
⚠️ NO THRESHOLD
17,851.00 µs
Commit pending proposals f(pending size)/cs1/mem/101📈 view plot
⚠️ NO THRESHOLD
114,750.00 µs
Commit pending proposals f(pending size)/cs1/mem/21📈 view plot
⚠️ NO THRESHOLD
34,943.00 µs
Commit pending proposals f(pending size)/cs1/mem/41📈 view plot
⚠️ NO THRESHOLD
56,147.00 µs
Commit pending proposals f(pending size)/cs1/mem/61📈 view plot
⚠️ NO THRESHOLD
75,641.00 µs
Commit pending proposals f(pending size)/cs1/mem/81📈 view plot
⚠️ NO THRESHOLD
95,212.00 µs
Commit remove f(group size)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
11,353.00 µs
Commit remove f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
586.44 µs
Commit remove f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
2,370.40 µs
Commit remove f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
4,216.40 µs
Commit remove f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
6,406.30 µs
Commit remove f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
8,402.50 µs
Commit remove f(number clients)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
13,986.00 µs
Commit remove f(number clients)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
135,470.00 µs
Commit remove f(number clients)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
111,230.00 µs
Commit remove f(number clients)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
87,241.00 µs
Commit remove f(number clients)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
62,730.00 µs
Commit remove f(number clients)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
38,878.00 µs
Commit update f(group size)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
135,170.00 µs
Commit update f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
754.85 µs
Commit update f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
28,089.00 µs
Commit update f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
55,126.00 µs
Commit update f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
82,951.00 µs
Commit update f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
108,740.00 µs
🐰 View full continuous benchmarking report in Bencher

@dependabot dependabot bot force-pushed the dependabot/cargo/uniffi-0.30.0 branch 3 times, most recently from 112234b to 8a22f43 Compare November 25, 2025 11:24
@dependabot dependabot bot force-pushed the dependabot/cargo/uniffi-0.30.0 branch 3 times, most recently from 9782df0 to 088e03d Compare December 5, 2025 12:05
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] <support@github.com>
@dependabot dependabot bot force-pushed the dependabot/cargo/uniffi-0.30.0 branch from 088e03d to 9d89ff2 Compare December 18, 2025 13:28
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.

2 participants