Backends
========

The following table describes the supported backends and some of their capabilities.

+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| Name                                           | Native | Primary | Secondary | Producer | Consumer | Autoprimary  | :doc:`DNS Update <../dnsupdate>` | :doc:`DNSSEC <../dnssec/index>` | Launch       |
+================================================+========+=========+===========+==========+==========+==============+==================================+=================================+==============+
| :doc:`BIND <bind>`                             | Yes    | Yes     | Yes       | No       | No       | Yes          | No                               | Yes                             | ``bind``     |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Generic Mysql/Mariadb <generic-mysql>`   | Yes    | Yes     | Yes       | Yes      | Yes      | Yes          | Yes                              | Yes                             | ``gmysql``   |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Generic ODBC <generic-odbc>`             | Yes    | Yes     | Yes       | Yes      | Yes      | Yes          | Yes                              | Yes                             | ``godbc``    |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Generic Postgresql <generic-postgresql>` | Yes    | Yes     | Yes       | Yes      | Yes      | Yes          | Yes                              | Yes                             | ``gpgsql``   |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Generic SQLite3 <generic-sqlite3>`       | Yes    | Yes     | Yes       | Yes      | Yes      | Yes          | Yes                              | Yes                             | ``gsqlite3`` |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`GeoIP <geoip>`                           | Yes    | No      | No        | No       | No       | No           | No                               | Yes                             | ``geoip``    |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`LDAP <ldap>`                             | Yes    | Yes     | No        | No       | No       | No           | No                               | No                              | ``ldap``     |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`LMDB <lmdb>`                             | Yes    | Yes     | Yes       | Yes      | Yes      | No           | No                               | Yes                             | ``lmdb``     |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Lua2 <lua2>`                             | Yes    | Yes     | No        | No       | No       | No           | No                               | Yes                             | ``lua2``     |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Pipe <pipe>`                             | Yes    | No      | No        | No       | No       | No           | No                               | No                              | ``pipe``     |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Random <random>`                         | Yes    | No      | No        | No       | No       | No           | No                               | No                              | ``random``   |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`Remote <remote>`                         | Yes    | Yes\*   | Yes\*     | No       | No       | Yes\*        | No                               | Yes\*                           | ``remote``   |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+
| :doc:`TinyDNS <tinydns>`                       | Yes    | Yes     | No        | No       | No       | No           | No                               | No                              | ``tinydns``  |
+------------------------------------------------+--------+---------+-----------+----------+----------+--------------+----------------------------------+---------------------------------+--------------+

All the generic SQL backends have similar functionality, apart from the database they communicate with.
These backends have :doc:`features unique <generic-sql>` to the generic SQL backends.

.. toctree::
  :maxdepth: 1
  :hidden:

  bind
  generic-sql
  generic-mysql
  generic-odbc
  generic-postgresql
  generic-sqlite3
  geoip
  ldap
  lmdb
  lua2
  pipe
  random
  remote
  tinydns
