> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/reference/product-development/plugin-development.md).

# Plugin Development

{% hint style="info" %}
This section contains background information, mostly aimed at engineers developing MariaDB features.
{% endhint %}

{% columns %}
{% column %}
{% content-ref url="/pages/R1dwaTSlp1lNQnVFl9Qk" %}
[Writing Plugins for MariaDB](/docs/server/reference/product-development/plugin-development/development-writing-plugins-for-mariadb.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
A comprehensive guide on the basic structure and necessary components for creating a new plugin from scratch.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/Q53lNt1nMH9G81nFeGUL" %}
[Encryption Plugin Development](/docs/server/reference/product-development/plugin-development/encryption-plugin-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Details the API used to develop encryption plugins for protecting data at rest, including key management and encryption schemes.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/mRvJ8f77qKHUpkHrEAGy" %}
[Audit Plugin Development](/docs/server/reference/product-development/plugin-development/audit-plugin-development.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Provides instructions for developing plugins that track and log server activity for security and compliance monitoring.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/VienCabLMqXTAfhGHnTK" %}
[Authentication Plugin Development](/docs/server/reference/product-development/plugin-development/authentication-plugin-development.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Details how to implement custom authentication methods, allowing users to connect using external credentials or protocols.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/gTQ8vWvWFgxRIxsrZvTx" %}
[Information Schema Plugins: SHOW and FLUSH Statements](/docs/server/reference/product-development/plugin-development/information-schema-plugins-show-and-flush-statements.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Explains how to create plugins that expose internal server data through virtual tables in the Information Schema.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/13VbKmLGnEZiOlujIU2a" %}
[Replication & Cluster Plugin Development](/docs/server/reference/product-development/plugin-development/replication-and-cluster-plugin-development.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Focuses on building plugins that interact with the server's replication stream or manage cluster-level synchronization.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/8LrLcQs2rXGd7C9Th496" %}
[Password Validation Plugin Development](/docs/server/reference/product-development/plugin-development/password-validation-plugin-development.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Implementation guide specifically for developers creating logic to intercept and validate password changes in the server.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/rjRAyz4zNzdFVUQOUx0p" %}
[Storage Engine Development](/docs/server/reference/product-development/plugin-development/storage-engines-storage-engine-development.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
A dedicated resource for engineers to learn how to build or modify storage engines, detailing the pluggable API and data handling at the physical level.
{% endcolumn %}
{% endcolumns %}
