# `MishkaInstaller.Installer.CompileHandler`
[🔗](https://github.com/mishka-group/mishka_installer/blob/v0.1.14/lib/installer/compile_handler.ex#L1)

Serialises runtime library installs and replays previously installed libraries on boot.

Installs are queued and run one at a time (installing mutates global VM state — the code path,
loaded modules and started apps — so it must not run concurrently). When the Mnesia store is
synchronized, every persisted `MishkaInstaller.Installer.Installer` record is re-activated
(re-added to the code path and started), fault-isolated per app.

## Telemetry

- `[:mishka_installer, :installer, :install]` — emitted after an install. Metadata: `:app`,
  `:result` (`:ok` | `:error`).
- `[:mishka_installer, :installer, :replay]` — emitted per app re-activated on boot. Metadata:
  `:app`, `:result` (`:ok` | `:error`).

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `do_clean`

```elixir
@spec do_clean() :: :ok
```

# `do_compile`

```elixir
@spec do_compile(MishkaInstaller.Installer.Installer.t(), atom()) :: :ok
```

# `get`

```elixir
@spec get() :: keyword()
```

# `start_link`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
