uniffi-rs
uniffi-rs copied to clipboard
a multi-language bindings generator for rust
Currently, panics are handled in a private error type in Swift https://github.com/mozilla/uniffi-rs/blob/main/uniffi_bindgen/src/bindings/swift/templates/Helpers.swift#L3 Do we want to expose that in some form so consumers can check if the code paniced? right...
Sometimes identifiers from a UDL file may conflict with Swift reserved words. Swift allows to resolve such conflicts by surrounding an identifier with backticks (`). For example: var private: Bool...
Kotlin and Swift have the `package_name` and `module_name` config values, seems like Python could benefit from this as well. * `module_name` feels more correct to me, but `package_name` would be...
When adding external type support for Kotlin, I noticed an issue with these. When we are building multiple UDL files together, we need to include all the .jar files in...
This is a follow-up for #1150 once it lands and the code associated with it is landed. I'll mark this as _discuss_ for now, it will probably require another ADR...
For our current stage of development, I like the way that we currently bundle the bindings generators for all languages as part of the main `uniffi_bindgen` crate. It simplifies testing...
Right now all our custom type examples are structs. It could be good to add some `Enum` examples -- e.g. a JSONObject as a JSONEnum which translates to a serde_json::Value....
#1107 allows the bindings to implement custom types for types marked as `custom` in the UDL. Let's extend this to allow the bindings to customize any type. Some use cases...
Encountered this in https://github.com/mozilla/application-services/pull/4720, where we have an enum with a variant called `Url`, and a wrapped type called `Url` as well ┆Issue is synchronized with this [Jira Task](https://mozilla-hub.atlassian.net/browse/UNIFFI-123) ┆friendlyId:...
Once upon a time, there was a UDL file which was used in two invocations of `uniffi_build`: ```sh uniffi-build scaffolding INPUT.UDL uniffi-build bindings --language LANGUAGE INPUT.UDL ``` The first command...