Jump to: navigation, search

Difference between revisions of "SDKs"

(Added Gophercloud)
(Added Erlang and Clojure)
Line 38: Line 38:
 
== [[OpenStack]] Toolkits ==
 
== [[OpenStack]] Toolkits ==
  
 +
=== Clojure ===
 +
* [https://github.com/oubiwann/clj-openstack clj-openstack] is a pure Clojure Binding for OpenStack Clouds
 +
=== Erlang ===
 +
* [https://github.com/oubiwann/lfe-openstack lfe-openstack] is a pure LFE (Lisp Flavored Erlang) language binding for OpenStack Clouds.
 
=== Go ===
 
=== Go ===
 
* [https://github.com/rackspace/gophercloud Gophercloud] provides a Go binding to OpenStack cloud APIs.
 
* [https://github.com/rackspace/gophercloud Gophercloud] provides a Go binding to OpenStack cloud APIs.
 
=== Java ===
 
=== Java ===
 
* [https://github.com/woorea/openstack-java-sdk OpenStack Java SDK] is a Java binding for the OpenStack APIs.
 
* [https://github.com/woorea/openstack-java-sdk OpenStack Java SDK] is a Java binding for the OpenStack APIs.
=== .NET ===
 
* [https://github.com/rackspace/openstack.net OpenStack.NET] is a .NET SDK for OpenStack.
 
 
=== JavaScript ===
 
=== JavaScript ===
 
* [http://ging.github.com/jstack/ jstack] is a JavaScript implementation of the OpenStack API.
 
* [http://ging.github.com/jstack/ jstack] is a JavaScript implementation of the OpenStack API.
 
* [https://github.com/gabrielhurley/js-openclient js-openclient] is a very opinionated core client which can be used in either node.js or in the browser (browser support not yet complete) to communicate with a RESTful APIs, including but not limited to any OpenStack-compatible API.
 
* [https://github.com/gabrielhurley/js-openclient js-openclient] is a very opinionated core client which can be used in either node.js or in the browser (browser support not yet complete) to communicate with a RESTful APIs, including but not limited to any OpenStack-compatible API.
 +
=== .NET ===
 +
* [https://github.com/rackspace/openstack.net OpenStack.NET] is a .NET SDK for OpenStack.
 
=== Perl ===
 
=== Perl ===
 
* [https://github.com/ironcamel/Net-OpenStack-Compute Net::OpenStack::Compute] provides Perl bindings for the OpenStack Compute API. It also provides a command line tool oscompute for interacting with an OpenStack deployment.
 
* [https://github.com/ironcamel/Net-OpenStack-Compute Net::OpenStack::Compute] provides Perl bindings for the OpenStack Compute API. It also provides a command line tool oscompute for interacting with an OpenStack deployment.

Revision as of 19:42, 1 January 2014

Software Development Kits

SDKs are a vital part of the OpenStack ecosystem, they help developers write applications for OpenStack and other clouds. For a list of the official OpenStack Python client libraries, see OpenStackClients.

Definition

  1. A set of language bindings that provide a language-level API for accessing OpenStack in a manner consistent with language standards.
  2. A Getting Started document that shows how to use the API to access OpenStack powered clouds.
  3. Detailed API reference documentation.
  4. Tested sample code that you can use as a "starter kit" for your own OpenStack applications.
  5. SDKs treat OpenStack as a blackbox and only interact with the REST/HTTP API.
  6. License must be compatible with Apache License v2.

Official OpenStack Clients

The OpenStackClients are the native Python bindings for the OpenStack APIs. They are used to implement the command-line interfaces (which ship with the library).

Known SDKs

What follows is a list of known SDKs that support OpenStack. This is not a list of official OpenStack SDKs. What constitutes an official OpenStack SDK has not been determined. This is an area the needs more work (see Criteria section).

To date, SDKs that support OpenStack fall into two categories. SDKs that support multiple clouds including OpenStack (aka cross-cloud toolkits) and SDKs that support OpenStack only. If you're aware of any other SDKs, please add them to the lists below.

Cross-Cloud Toolkits

Java

  • jclouds is an open source library that helps you get started in the cloud and utilizes your Java or Clojure development skills. The jclouds API gives you the freedom to use portable abstractions or cloud-specific features.

node.js

  • pkgcloud is a standard library for node.js that abstracts away differences among multiple cloud providers.

Python

  • Apache Libcloud is a standard Python library that abstracts away differences among multiple cloud provider APIs.

Ruby

  • fog provides an accessible entry point and facilitates cross service compatibility.

OpenStack Toolkits

Clojure

Erlang

  • lfe-openstack is a pure LFE (Lisp Flavored Erlang) language binding for OpenStack Clouds.

Go

  • Gophercloud provides a Go binding to OpenStack cloud APIs.

Java

JavaScript

  • jstack is a JavaScript implementation of the OpenStack API.
  • js-openclient is a very opinionated core client which can be used in either node.js or in the browser (browser support not yet complete) to communicate with a RESTful APIs, including but not limited to any OpenStack-compatible API.

.NET

Perl

  • Net::OpenStack::Compute provides Perl bindings for the OpenStack Compute API. It also provides a command line tool oscompute for interacting with an OpenStack deployment.

PHP

  • php-opencloud is a software development kit (SDK) to help developers using PHP to work with OpenStack and other open clouds.
  • ZendService_OpenStack is a PHP library that implements the last versions of the OpenStack API. It's 100% compliant with the specification of OpenStack.

Python

  • The OpenStackClients are the native Python bindings for the OpenStack APIs. They are used to implement the command-line interfaces (which ship with the library).
  • pyrax should work with most OpenStack-based cloud deployments, though it specifically targets the Rackspace public cloud.