# Mishka installer v0.1.7 - Table of Contents

> Mishka Installer is a system plugin manager and run time installer for elixir.

## Pages

- [README](readme.md)
- [Changelog for MishkaInstaller 0.1.6](changelog.md)

## Modules

- [MishkaInstaller](MishkaInstaller.md): # Mishka Installer is a system plugin(event) manager and run time installer for Elixir.
- [MishkaInstaller.Event.Event](MishkaInstaller.Event.Event.md): The `MishkaInstaller.Event.Event` module is the core of events, which comprises pre-prepared
strategies for the implementation and management of plugins introduced to the system
around various events.
These implementation and management strategies are included in the Event module.
- [MishkaInstaller.Event.EventHandler](MishkaInstaller.Event.EventHandler.md): Serialises (re)compilation of the per-event plugin modules.
- [MishkaInstaller.Event.Hook](MishkaInstaller.Event.Hook.md): The `MishkaInstaller.Event.Hook` module provides a set of functionalities to manage event hooks
within the Mishka Installer system.
- [MishkaInstaller.Event.ModuleStateCompiler](MishkaInstaller.Event.ModuleStateCompiler.md): `The MishkaInstaller.Event.ModuleStateCompiler` module is designed to dynamically create and manage
event-driven modules that handle state and plugins within the Mishka Installer system.
This module provides functions to create, purge, and verify the initialization state of these event modules.
- [MishkaInstaller.Helper.Extra](MishkaInstaller.Helper.Extra.md): Small, dependency-free helpers used across `MishkaInstaller`.
- [MishkaInstaller.Helper.MnesiaAssistant](MishkaInstaller.Helper.MnesiaAssistant.md): A focused Elixir wrapper around the Erlang [`:mnesia`](https://www.erlang.org/doc/man/mnesia)
runtime database used by `MishkaInstaller`.
- [MishkaInstaller.Helper.MnesiaAssistant.Error](MishkaInstaller.Helper.MnesiaAssistant.Error.md): Turns raw Mnesia results into a normalised `{:ok, :atomic}` / `{:error, error, description}` shape
and logs them.
- [MishkaInstaller.Helper.MnesiaAssistant.Information](MishkaInstaller.Helper.MnesiaAssistant.Information.md): Read-only introspection of the running Mnesia system.

- [MishkaInstaller.Helper.MnesiaAssistant.Query](MishkaInstaller.Helper.MnesiaAssistant.Query.md): Record-level Mnesia operations (read / write / delete / select / match).
- [MishkaInstaller.Helper.MnesiaAssistant.Schema](MishkaInstaller.Helper.MnesiaAssistant.Schema.md): Mnesia schema creation.

- [MishkaInstaller.Helper.MnesiaAssistant.Table](MishkaInstaller.Helper.MnesiaAssistant.Table.md): Table lifecycle helpers (create / wait / clear / keys).

- [MishkaInstaller.Helper.MnesiaAssistant.Transaction](MishkaInstaller.Helper.MnesiaAssistant.Transaction.md): Runs Mnesia activities and maps aborted results to the installer's error shape.

- [MishkaInstaller.Helper.UUID](MishkaInstaller.Helper.UUID.md): Generates RFC 4122 **version 4** UUIDs.
- [MishkaInstaller.Installer.CompileHandler](MishkaInstaller.Installer.CompileHandler.md): Serialises runtime library installs and replays previously installed libraries on boot.
- [MishkaInstaller.Installer.Downloader](MishkaInstaller.Installer.Downloader.md): The `MishkaInstaller.Installer.Downloader` module downloads a **pre-built artifact** — a `tar.gz`
that contains a compiled `ebin` directory (`ebin/*.beam` + `ebin/<app>.app`).
- [MishkaInstaller.Installer.Installer](MishkaInstaller.Installer.Installer.md): When it comes to `Erlan`g and `Elixir`, the process of runtime installing and runtime uninstalling a
new library or runtime upgrading it is subject to a number of constraints.
- [MishkaInstaller.Installer.LibraryHandler](MishkaInstaller.Installer.LibraryHandler.md): This module provides programmers with a public APIs and helpers that allow them to
load a **pre-built** Elixir/Erlang library (its compiled `ebin`) into a running system.
- [MishkaInstaller.MnesiaRepo](MishkaInstaller.MnesiaRepo.md): Boots, supervises and **dynamically clusters** the [Mnesia](https://www.erlang.org/doc/man/mnesia)
store used by `MishkaInstaller`.
- [MishkaInstaller.QueueAssistant](MishkaInstaller.QueueAssistant.md): A thin FIFO queue wrapper over the Erlang [`:queue`](https://www.erlang.org/doc/man/queue) module.

