Third Party Drivers
===================

Libcloud includes most of the drivers in its core, but some providers and
developers for various reasons decide to release their driver as a separate
PyPi package.

This page lists those third party drivers. For documentation and usage examples,
please refer to the third party driver documentation (if available).

Keep in mind that those drivers are not part of the core and such we can't
guarantee the quality of those drivers.

Compute
-------

+----------------+---------------------------------+---------------------------------+
| Provider       | PyPi package                    | Source code                     |
+================+=================================+=================================+
| `StratusLab`_  | `stratuslab-libcloud-drivers`_  | `StratusLab/libcloud-drivers`_  |
+----------------+---------------------------------+---------------------------------+
| `Snooze`_      |                                 | `msimonin/snooze-libcloud`_     |
+----------------+---------------------------------+---------------------------------+

DNS
----

+-----------------+--------------------------+---------------------------------------+
| Provider        | PyPi package             | Source code                           |
+=================+==========================+=======================================+
| `DNSMadeEasy`_  | `libcloud-dnsmadeeasy`_  | `moses-palmer/libcloud-dnsmadeeasy`_  |
+-----------------+--------------------------+---------------------------------------+

.. _`StratusLab`: http://stratuslab.eu/
.. _`stratuslab-libcloud-drivers`: https://pypi.python.org/pypi/stratuslab-libcloud-drivers
.. _`StratusLab/libcloud-drivers`: https://github.com/StratusLab/libcloud-drivers

.. _`Snooze`: http://snooze.inria.fr
.. _`msimonin/snooze-libcloud`: https://github.com/msimonin/snooze-libcloud

.. _`DNSMadeEasy`: http://www.dnsmadeeasy.com/
.. _`libcloud-dnsmadeeasy`: https://pypi.python.org/pypi/libcloud-dnsmadeeasy
.. _`moses-palmer/libcloud-dnsmadeeasy`: https://github.com/moses-palmer/libcloud-dnsmadeeasy
