Apache libcloud - a unified interface into the cloud

The goal of this project is to create a basic yet functional standard library 
into various cloud providers.

Apache libcloud is an incubator project at the Apache Software Foundation, see
<http://incubator.apache.org/libcloud> for more information.

For API documentation and examples, see:
  <http://incubator.apache.org/libcloud/getting-started.html>