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

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 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
16,992.00 µs
Commit add f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
751.16 µs
Commit add f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
3,964.20 µs
Commit add f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
7,577.70 µs
Commit add f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
10,571.00 µs
Commit add f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
13,545.00 µs
Commit add f(number clients)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
805,180.00 µs
Commit add f(number clients)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
736.61 µs
Commit add f(number clients)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
66,119.00 µs
Commit add f(number clients)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
175,400.00 µs
Commit add f(number clients)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
345,350.00 µs
Commit add f(number clients)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
536,670.00 µs
Commit pending proposals f(group size)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
93,005.00 µs
Commit pending proposals f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
19,422.00 µs
Commit pending proposals f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
33,863.00 µs
Commit pending proposals f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
45,477.00 µs
Commit pending proposals f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
60,203.00 µs
Commit pending proposals f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
71,313.00 µs
Commit pending proposals f(pending size)/cs1/mem/1📈 view plot
⚠️ NO THRESHOLD
16,929.00 µs
Commit pending proposals f(pending size)/cs1/mem/101📈 view plot
⚠️ NO THRESHOLD
90,642.00 µs
Commit pending proposals f(pending size)/cs1/mem/21📈 view plot
⚠️ NO THRESHOLD
30,107.00 µs
Commit pending proposals f(pending size)/cs1/mem/41📈 view plot
⚠️ NO THRESHOLD
45,650.00 µs
Commit pending proposals f(pending size)/cs1/mem/61📈 view plot
⚠️ NO THRESHOLD
60,908.00 µs
Commit pending proposals f(pending size)/cs1/mem/81📈 view plot
⚠️ NO THRESHOLD
76,006.00 µs
Commit remove f(group size)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
11,301.00 µs
Commit remove f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
608.48 µs
Commit remove f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
2,117.00 µs
Commit remove f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
3,901.50 µs
Commit remove f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
6,271.80 µs
Commit remove f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
8,133.90 µs
Commit remove f(number clients)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
13,744.00 µs
Commit remove f(number clients)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
117,950.00 µs
Commit remove f(number clients)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
97,297.00 µs
Commit remove f(number clients)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
76,799.00 µs
Commit remove f(number clients)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
54,410.00 µs
Commit remove f(number clients)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
33,054.00 µs
Commit update f(group size)/cs1/mem/1002📈 view plot
⚠️ NO THRESHOLD
118,860.00 µs
Commit update f(group size)/cs1/mem/2📈 view plot
⚠️ NO THRESHOLD
794.71 µs
Commit update f(group size)/cs1/mem/202📈 view plot
⚠️ NO THRESHOLD
24,386.00 µs
Commit update f(group size)/cs1/mem/402📈 view plot
⚠️ NO THRESHOLD
47,769.00 µs
Commit update f(group size)/cs1/mem/602📈 view plot
⚠️ NO THRESHOLD
72,048.00 µs
Commit update f(group size)/cs1/mem/802📈 view plot
⚠️ NO THRESHOLD
95,078.00 µs
🐰 View full continuous benchmarking report in Bencher

@dependabot dependabot bot force-pushed the dependabot/cargo/uniffi-0.30.0 branch 2 times, most recently from 39ccf8f to 112234b Compare November 21, 2025 15:34
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 112234b to 8a22f43 Compare November 25, 2025 11:24
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