Welcome to Apache Libcloud's documentation!
===========================================

.. note::

    Right now we're in the progress of migrating our existing documentation to
    Sphinx, so this may be incomplete. We apologize for the inconvenience and we
    hope the upcoming awesomeness will make up for it.

Apache Libcloud is a Python library which abstracts away the differences
between multiple cloud providers. It current can manage four different cloud
resources:

* :doc:`Cloud servers </compute/index>` - services such as Amazon EC2 and
  RackSpace CloudServers
* :doc:`Cloud object storage </storage/index>` - services such as Amazon S3 and
  Rackspace CloudFiles
* :doc:`Load Balancers as a Service </loadbalancers/index>`
* :doc:`DNS as a Service </dns/index>`


.. toctree::
    :glob:
    :hidden:

    compute/*
    storage/*
    loadbalancers/*
    dns/*
