Apache Libcloud - a unified interface into the cloud
====================================================

.. image:: https://badge.fury.io/py/apache-libcloud.png
    :target: http://badge.fury.io/py/apache-libcloud

.. image:: https://pypip.in/d/apache-libcloud/badge.png
        :target: https://crate.io/packages/apache-libcloud/

.. image:: https://secure.travis-ci.org/apache/libcloud.png?branch=trunk
        :target: http://travis-ci.org/apache/libcloud

Apache Libcloud is a Python library which hides differences between different
cloud provider APIs and allows you to manage different cloud resources
through a unified and easy to use API.

Resource you can manage with Libcloud are divided in the following categories:

* Cloud Servers and Block Storage - services such as Amazon EC2 and Rackspace
  Cloud Servers (``libcloud.compute.*``)
* Cloud Object Storage and CDN  - services such as Amazon S3 and Rackspace
  CloudFiles (``libcloud.storage.*``)
* Load Balancers as a Service, LBaaS (``libcloud.loadbalancer.*``)
* DNS as a Service, DNSaaS (``libcloud.dns.*``)

Apache Libcloud is an Apache project, see <http://libcloud.apache.org> for
more information.

Documentation
=============

Documentation can be found at https://libcloud.readthedocs.org.

Feedback
========

Please send feedback to the mailing list at <dev@libcloud.apache.org>,
or the JIRA at <https://issues.apache.org/jira/browse/LIBCLOUD>.

Contributing
============

For information on how to contribute, please see the Contributing
chapter in our documentation
<https://libcloud.readthedocs.org/en/latest/development.html#contributing>
