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 nameDefaultDescription
cdylib_nameuniffi_{namespace}1The name of the compiled Rust library containing the FFI implementation (not needed when using generate --library).
module_name{namespace}1The name of the Swift module containing the high-level foreign-language bindings.
ffi_module_name{module_name}FFIThe 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_maptrueWhether to generate a .modulemap file for the lower-level C module with FFI declarations.
omit_argument_labelsfalseWhether to omit argument labels in Swift function definitions.
generate_immutable_recordsfalseWhether to generate records with immutable fields (let instead of var).
experimental_sendable_value_typesfalseWhether to mark value types as `Sendable'.
custom_typesA 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