Skip to content

Configuration

The generated Swift module can be configured using a uniffi.toml configuration file.

Available options

The configurations prefixed with experimental_ should be regarded as unstable and more likely to change than other configurations.

Configuration name Default Description
cdylib_name uniffi_{namespace}[^1] The name of the compiled Rust library containing the FFI implementation (not needed when using generate --library).
module_name {namespace}[^1] The name of the Swift module containing the high-level foreign-language bindings.
ffi_module_name {module_name}FFI The name of the lower-level C module containing the FFI declarations.
ffi_module_filename {ffi_module_name} The filename stem for the lower-level C module containing the FFI declarations.
generate_module_map true Whether to generate a .modulemap file for the lower-level C module with FFI declarations.
omit_argument_labels false Whether to omit argument labels in Swift function definitions.
generate_immutable_records false Whether to generate records with immutable fields (let instead of var).
experimental_sendable_value_types false Whether to mark value types as `Sendable'.
custom_types A map which controls how custom types are exposed to Swift. See the custom types section of the manual

[^1]: namespace is the top-level namespace from your UDL file.

Example

[bindings.swift]
cdylib_name = "mycrate_ffi"
omit_argument_labels = true