Skip to content

Tracking uniffi-dart generator to UniFFI 0.30 #90

@chavic

Description

@chavic

This serves as a checklist for what needs to be done for uniffi-dart to move to uniffi-rs 0.30.

The scope roughly invloves migration of imports from uniffi_bindgen::backend to the 0.30 pipeline/interface APIs; update literal/default handling; rewrite handle management to treat object/trait handles as u64 with low-bit tagging; adjust callback interface generation to the new vtable ordering and clone/free expectations; ensure Dart-side UniffiHandleMap manages even/odd handles correctly; regenerate fixtures and bindings; bump crate/tag once tests pass.

Tasks:

  • Align all unifi* dependencies to 0.30.x.
  • Regenerate fixtures/bindings, run the test suite, and prepare release notes.
  • Refactor generator code for new pipeline data structures (Literal, Type, etc.).
  • Convert handle storage to 64-bit ints, including clone/free helpers and generated Dart glue.
  • Update callback/trait scaffolding (vtable layout, low-bit tagging, clone trampolines).
  • Revisit default-value lowering for refreshed Literal semantics.

With these high-level tasks and potential regressions completed, this ticket is considered complete once the generator builds against UniFFI 0.30, new fixtures pass, Dart integration tests confirm handle/tag behavior, and documentation reflects new requirements.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions