Libcloud is a Python library for interacting with many of the popular cloud service providers using a unified API. It was created to make it easy for developers to build products that work between any of the services that it supports.
Resource you can manage with Libcloud are divided in the following categories:
- Cloud Servers and Block Storage - services such as Amazon EC2 and Rackspace CloudServers
- Cloud Object Storage and CDN - services such as Amazon S3 and Rackspace CloudFiles
- Load Balancers as a Service - services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
- DNS as a Service - services such as Amazon Route 53 and Zerigo
- Containers as a Service - services such as Amazon Elastic Containers (ECS) and Google Container Engine (GKE)
For more information about the features and supported providers, please refer to the documentation.
Libcloud was originally developed and open-sourced in 2009 by folks at Cloudkick. It was developed to solve a problem of talking to multiple different cloud provider APIs.
Later that year, the project joined Apache Incubator. In May of 2011, the project graduated from the incubator to a top level project.
For a full timeline of the events and other important dates, please see the "Important Milestones and Dates" section bellow.
Libcloud supports the following Python version:
- Python 3.5
- Python 3.6
- Python 3.7 (since 2.5.0)
- Python 3.8 (since 2.7.0)
- PyPy 3 (3.5.x, 3.6.x)
First version which introduced Python 3 support was 0.7.1.
Support for Python 2.7 and Python 3.4 has been dropped in Libcloud 3.0.0.
Support for Python 2.4 has been dropped in Libcloud 0.4.0, Python 2.5 in 2016 and Python 2.6 and 3.3 in Libcloud 2.3.0.
We don't follow a regular releases schedule as you might know it from other projects such as Ubuntu.
Here are the guidelines we follow when scheduling and preparing a release:
- Normal (stable) release - We prepare and get the release out as soon as enough changes accumulate in trunk.
- Bug fix release - It depends on the severity of a bug and how many users it affects. If it affects a lot of users or a big chunk of the code we try to prepare and get the release out as soon as possible.
- Security fix release - We prepare and get the release out as soon as possible.
Similar Libraries in Other Languages
As noted above, Libcloud is a Python library.
If you are looking for a similar library for a different language, you should have a look at some of the libraries listed bellow:
- Apache Jclouds - Java
- Apache Deltacloud - Ruby, HTTP
- Fog - Ruby
- pkgcloud - Node.js
- elibloud - Erlang (Erlang wrapper around Libcloud)
If you feel adventures, you should also have a look at Libcloud REST, a Google Summer of Code 2012 project which exposes most of the Libcloud functionality over HTTP.
Important Milestones and Dates
- Summer 2009 - Libcloud development starts at Cloudkick
- July 23, 2009 - First open-source version of Libcloud is released by folks at Cloudkick
- November 11th, 2009 - Project enters Apache Incubator
- March 22nd, 2011 - Website has been ported to Apache CMS
- February 2nd, 2010 - First Apache release (0.2.0) is out
- May 10th, 2011 - Community voting for graduation to a Top Level Project has started
- May 19th, 2011 - Project graduates to a top level project
- May 19th, 2011 - Project gets a chair - Tomaz Muraus
- May 25, 2011 - Libcloud 0.5.0 which moves away from compute only and includes support for object storage and load balancer API is released
- November 5th, 2011 - Libcloud 0.6.0 which includes support for a new DNS API is released
- April 2012 - Libcloud participates in GSoC 2012. Student Ilgiz Islamgulov works on "Libcloud REST interface" project.
- August 30th, 2012 - Libcloud REST GSoC 2012 project has been successfully completed
- June 12th, 2011 - Code repository has moved from SVN to git
- July 2013 - Work has started on a new and improved documentation which is now hosted on ReadTheDocs
- April 2020 - Libcloud 3.0.0 is released and we drop support for Python 2