<a id="plugins"></a>

# Plugins

This section describes methods for extending the functionality of the MTA by loading C-compatible libraries written in programming languages other than Halon [script](https://docs.halon.io/hsl/) (HSL).
These are:

* The **FFI** class allows loading libraries directly from Halon [script](https://docs.halon.io/hsl/) without modifying the library’s source code or API.
* The **HSL plugin** system allows you to natively extend HSL by creating special libraries which registers HSL functions.
* The **Queue** system allows you to easily implement custom delivery policies (such as automatic IP warmup) for the [queue](queue.html.md).
* The **Delivery plugin** system allows you to easily implement custom delivery methods (such as HTTP) for the [queue](queue.html.md).

* [FFI](plugins_ffi.html.md)
* [Native plugins](plugins_native.html.md)
  * [Exported by plugin](plugins_native.html.md#exported-by-plugin)
    * [Command plugin](plugins_native.html.md#command-plugin)
    * [HSL plugin](plugins_native.html.md#hsl-plugin)
    * [Queue plugin](plugins_native.html.md#queue-plugin)
    * [Delivery plugin](plugins_native.html.md#delivery-plugin)
  * [Exported by MTA](plugins_native.html.md#exported-by-mta)
    * [Objects](plugins_native.html.md#objects)
    * [Callable](plugins_native.html.md#callable)
    * [HSL plugin](plugins_native.html.md#id1)
    * [Lists plugin](plugins_native.html.md#lists-plugin)
    * [Inject plugin](plugins_native.html.md#inject-plugin)
    * [Import plugin](plugins_native.html.md#import-plugin)
    * [Queue plugin](plugins_native.html.md#id4)
    * [Delivery plugin](plugins_native.html.md#id5)
    * [Monitor plugin](plugins_native.html.md#monitor-plugin)
* [HSL plugins](plugins_hsl.html.md)
* [Development](plugins_development.html.md)
  * [hsh](plugins_development.html.md#hsh)
    * [hsh.yaml](plugins_development.html.md#hsh-yaml)
    * [hsh-app.yaml](plugins_development.html.md#hsh-app-yaml)
* [Examples](plugins_examples.html.md)
