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,Rekindle.Plugin.Slint, andRekindle.Plugin.Iced.: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"].:workers— Web-only auxiliary WebAssembly workers keyed by a safe URL segment. Each worker accepts:package,:binary, and:features; its features default to["web"].
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.
Auxiliary Web workers
Configure a dedicated Rust binary when browser APIs require a Web Worker:
config :my_app, Rekindle,
plugin: Rekindle.Plugin.GPUI,
targets: [
web: [
package: "editor_client",
workers: [
storage: [
package: "storage_worker",
binary: "storage-worker",
features: ["web"]
]
]
]
]Rekindle builds each worker for wasm32-unknown-unknown, runs wasm-bindgen,
and publishes it in the same immutable generation as the main module. The
generated entry module exports a frozen workers object whose values are
module URL strings. It also exposes the same object at
globalThis[Symbol.for("rekindle.workers")] for Rust applications that start
through the default module export.