feat(python): generate Python wrapper with UniFFI instead of pyo3#391
Merged
Sébastien Duquette (sduquette-devolutions) merged 1 commit intoJun 3, 2026
Merged
Conversation
9484126 to
fbf9711
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fbf971137a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "Codex (@codex) review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".
Build the Python bindings from the existing devolutions-crypto-uniffi scaffolding via maturin (bindings = "uniffi") rather than a hand-written pyo3 wrapper. Still imported as `devolutions_crypto`. - Drop the pyo3 crate and the hand-written .pyi stub; the python/ crate now only hosts the uniffi-bindgen binary maturin invokes - Gate that binary's uniffi CLI dependency to non-wasm targets so wasm builds (wasm-pack over the workspace) are unaffected - Build a single py3-none wheel per target in CI (UniFFI bindings are ABI-independent, so the per-Python-version matrix is no longer needed) - Port the Python test suite to the UniFFI API and add derive_encrypt tests mirroring the other wrappers - Update the PyPI usage examples for the UniFFI API This is a breaking API change for Python consumers (shapes follow UniFFI); the wrapper is used only for testing.
fbf9711 to
587b4ea
Compare
Sébastien Duquette (sduquette-devolutions)
approved these changes
Jun 3, 2026
Richard Boisvert (rbstp)
approved these changes
Jun 3, 2026
2a547bf
into
master
27 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds the Python bindings from the existing
devolutions-crypto-uniffiscaffolding via maturin (bindings = "uniffi") instead of pyo3. Still imported asimport devolutions_crypto.Breaking API change (shapes follow UniFFI); the wrapper is testing-only. Verified locally: wheel builds, installs, and the ported test suite passes (23/23).