Rekindle uses the host application's standard Elixir configuration:
config :my_app, Rekindle,
plugin: Rekindle.Plugin.GPUI,
targets: [
web: [],
desktop: []
]Top-level options
:plugin— required; a module implementingRekindle.Plugin, or a{module, options}tuple. Rekindle includesRekindle.Plugin.GPUI,Rekindle.Plugin.Egui, andRekindle.Plugin.Slint.:targets— required; a non-empty keyword list containing:web,:desktop, or both.:public_dir— Web release publication root. Defaults to"priv/static"; another location must be an absolute path.
The Rust client is located at client/. Web release output is published below
<public_dir>/rekindle/.
Target options
Each target accepts:
:features— Cargo features enabled for the target. Defaults to the target name ("web"or"desktop"). Setfeatures: []explicitly when the Cargo target does not require a feature.:package— Cargo package name when the workspace contains more than one package.:binary— Cargo binary name when it cannot be selected from the target entry.:profiles— Cargo profile names for Rekindle's:devand:releasemodes. Defaults to[dev: "dev", release: "release"].
For example:
config :my_app, Rekindle,
plugin: Rekindle.Plugin.Egui,
targets: [
web: [
package: "editor_client",
binary: "web",
features: ["web"],
profiles: [dev: "dev", release: "release"]
],
desktop: [
package: "editor_client",
binary: "desktop",
features: ["desktop"],
profiles: [dev: "dev", release: "release"]
]
]mix rekindle.doctor validates the effective configuration and Cargo metadata
without changing the project.