<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ken+Perkins</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ken+Perkins"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Ken_Perkins"/>
		<updated>2026-06-27T16:44:01Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=SDK-Development&amp;diff=52294</id>
		<title>SDK-Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=SDK-Development&amp;diff=52294"/>
				<updated>2014-05-14T15:48:13Z</updated>
		
		<summary type="html">&lt;p&gt;Ken Perkins: /* SDK Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To enable application developers to build applications that use OpenStack, we need SDKs for each programming language (e.g., PHP, Go, Java) to provide them with what they need.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
The purpose of this page is to work through how we go about building SDKs in a semi-consistent manner on the OpenStack infrastructure.&lt;br /&gt;
&lt;br /&gt;
== What's in an SDK? ==&lt;br /&gt;
&lt;br /&gt;
An SDK is more than just a set of APIs provided to you. A complete SDK provides a consumer focused API for interacting with the system, and it additionally includes:&lt;br /&gt;
&lt;br /&gt;
* Documentation aimed at users consuming the SDK and system. &lt;br /&gt;
* Clear examples of usage, including functioning, executable examples.&lt;br /&gt;
* The SDK may optionally include tools to help developers use the SDK, such as IDE plugins or batch scripts.&lt;br /&gt;
&lt;br /&gt;
== Audience ==&lt;br /&gt;
Application developers build applications that interact with OpenStack. Application developers are not OpenStack Operators or Developers. These are developers looking to consume a feature-rich OpenStack Cloud with its many services. These Developers require a consistent, single namespace API (&amp;quot;Application Programming Interface&amp;quot;) that allows them to build and deploy their application with minimal dependencies.&lt;br /&gt;
&lt;br /&gt;
== Goals for each SDK ==&lt;br /&gt;
&lt;br /&gt;
# Don't break clients!&lt;br /&gt;
# Support multiple API versions for each service (e.g., Keystone API v2 and v3).&lt;br /&gt;
# Use application developer friendly language in descriptions (e.g., Compute instead of Nova).&lt;br /&gt;
# Provide a manner to extend the services in the SDKs.&lt;br /&gt;
# Be written in a manner consistent with the language and platform they are for (e.g., A Java SDK shouldn't look like Python).&lt;br /&gt;
# Contain example code to get started.&lt;br /&gt;
# Contain documentation explaining how to get started and going with the SDKs and the services.&lt;br /&gt;
# Contain cross-linked class/module reference documentation.&lt;br /&gt;
# Contain a release history/change log documenting deprecations, new additions and bug fixes in the SDK (with links wherever possible).&lt;br /&gt;
# Handle OpenStack extensions in a graceful manner (e.g. you should be able to simply make a method call to determine if an OpenStack cloud supports a particular extension).&lt;br /&gt;
# Be open source and [http://opensource.com/life/14/1/evaluate-sustainability-open-source-project sustainable].&lt;br /&gt;
# Open source license must be compatible with Apache License v2?&lt;br /&gt;
&lt;br /&gt;
== Non-Goals for each SDK ==&lt;br /&gt;
&lt;br /&gt;
# While an SDK should provide working code examples showing usage of the SDK, it must '''not''' provide a complete end-user client (e.g. a CLI) implementation. Such an implementation belongs to a separate project that would depend on and use the appropriate SDK.&lt;br /&gt;
&lt;br /&gt;
==SDK Projects==&lt;br /&gt;
# [[SDK-Development/PythonOpenStackSDK]]&lt;br /&gt;
# [[OpenStack-SDK-PHP]]&lt;br /&gt;
# [[OpenStack-SDK-Ruby]]&lt;br /&gt;
# [[OpenStack-SDK-DotNet]]&lt;br /&gt;
# [[OpenStack-SDK-Java]]&lt;br /&gt;
# [[OpenStack-SDK-Node.js]]&lt;br /&gt;
&lt;br /&gt;
== Resources == &lt;br /&gt;
Summit Design Sessions&lt;br /&gt;
# [https://etherpad.openstack.org/p/sdk-documentation SDK Documentation Discussion] at Grizzly Summit&lt;br /&gt;
# [https://etherpad.openstack.org/p/icehouse-doc-app-devs Documenting Application Developer Resources] at Icehouse Summit&lt;br /&gt;
&lt;br /&gt;
== Example uses of an SDK ==&lt;br /&gt;
* Syncing objects between containers from two different providers. For example, syncing objects between a private and public cloud.&lt;br /&gt;
* Using object storage as a back end to store data or files within an application.&lt;br /&gt;
* Building a custom services management tool (e.g., a special purpose CLI or console).&lt;/div&gt;</summary>
		<author><name>Ken Perkins</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=OpenStack-SDK-Node.js&amp;diff=52293</id>
		<title>OpenStack-SDK-Node.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=OpenStack-SDK-Node.js&amp;diff=52293"/>
				<updated>2014-05-14T15:47:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ken Perkins: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This project is not an official OpenStack project, nor are there plans to do so in the near term. This wiki entry is an effort to clearly communicate the recommended way to interact/interoperate with OpenStack via a Node.js language binding/Software Development Kit (SDK). We hope this will improve the experience of OpenStack end-users who are using the Node.js programming language by providing them with everything they need to develop applications against OpenStack.&lt;br /&gt;
&lt;br /&gt;
'''What's in an SDK?:'''&lt;br /&gt;
An SDK is more than just a set of APIs provided to you. A complete SDK provides a consumer focused API for interacting with the system, and it additionally includes:&lt;br /&gt;
&lt;br /&gt;
* Documentation aimed at users consuming the SDK and system. &lt;br /&gt;
* Clear examples of usage, including functioning, executable examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenStack is considering endoring pkgcloud as the 'official' Node.js binding for interacting with OpenStack public/hybrid/private clouds:&lt;br /&gt;
[http://developer.openstack.org Open source SDKs for OpenStack application development]&lt;br /&gt;
&lt;br /&gt;
Much effort is currently being invested in the pkgcloud project in general and the OpenStack provider in particular. The pkgcloud OpenStack provider already has maximum reuse for OpenStack provider clouds.&lt;br /&gt;
&lt;br /&gt;
== Audience ==&lt;br /&gt;
The primary target for this package is application developers who develop against OpenStack. This does not include those who develop OpenStack itself or operate it. These are developers looking to consume a feature-rich OpenStack Cloud with its many services. These Developers require a consistent, single namespace API (&amp;quot;Application Programming Interface&amp;quot;) that allows them to build and deploy their application with minimal dependencies. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
# Feel native to developers working in Node.js.&lt;br /&gt;
# Support multiple API versions for each service (e.g., Nova API v1 and v2).&lt;br /&gt;
# Provide a method for vendor extensions. Numerous vendors have extensions. There needs to be a method to support these to aid the end developer.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|  Source code (pkgcloud)   || https://github.com/pkgcloud/pkgcloud&lt;br /&gt;
|-&lt;br /&gt;
|  Bug tracker  || https://github.com/pkgcloud/pkgcloud/issues&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
The developers use IRC in #pkgcloud on freenode for development discussion.&lt;/div&gt;</summary>
		<author><name>Ken Perkins</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=OpenStack-SDK-Node.js&amp;diff=52292</id>
		<title>OpenStack-SDK-Node.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=OpenStack-SDK-Node.js&amp;diff=52292"/>
				<updated>2014-05-14T15:43:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ken Perkins: Created page with &amp;quot;__TOC__  == Summary == This project is not an official OpenStack project, nor are there plans to do so in the near term. This wiki entry is an effort to clearly communicate th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This project is not an official OpenStack project, nor are there plans to do so in the near term. This wiki entry is an effort to clearly communicate the recommended way to interact/interoperate with OpenStack via a Node.js language binding/Software Development Kit (SDK). We hope this will improve the experience of OpenStack end-users who are using the Node.js programming language by providing them with everything they need to develop applications against OpenStack.&lt;br /&gt;
&lt;br /&gt;
'''What's in an SDK?:'''&lt;br /&gt;
An SDK is more than just a set of APIs provided to you. A complete SDK provides a consumer focused API for interacting with the system, and it additionally includes:&lt;br /&gt;
&lt;br /&gt;
* Documentation aimed at users consuming the SDK and system. &lt;br /&gt;
* Clear examples of usage, including functioning, executable examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenStack has endorsed pkgcloud as the 'official' Node.js binding for interacting with OpenStack public/hybrid/private clouds:&lt;br /&gt;
[http://developer.openstack.org Open source SDKs for OpenStack application development]&lt;br /&gt;
&lt;br /&gt;
Much effort is currently being invested in the pkgcloud project in general and the OpenStack provider in particular. The pkgcloud OpenStack provider already has maximum reuse for OpenStack provider clouds.&lt;br /&gt;
&lt;br /&gt;
== Audience ==&lt;br /&gt;
The primary target for this package is application developers who develop against OpenStack. This does not include those who develop OpenStack itself or operate it. These are developers looking to consume a feature-rich OpenStack Cloud with its many services. These Developers require a consistent, single namespace API (&amp;quot;Application Programming Interface&amp;quot;) that allows them to build and deploy their application with minimal dependencies. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
# Feel native to developers working in Node.js.&lt;br /&gt;
# Support multiple API versions for each service (e.g., Nova API v1 and v2).&lt;br /&gt;
# Provide a method for vendor extensions. Numerous vendors have extensions. There needs to be a method to support these to aid the end developer.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|  Source code (pkgcloud)   || https://github.com/pkgcloud/pkgcloud&lt;br /&gt;
|-&lt;br /&gt;
|  Bug tracker  || https://github.com/pkgcloud/pkgcloud/issues&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
The developers use IRC in #pkgcloud on freenode for development discussion.&lt;/div&gt;</summary>
		<author><name>Ken Perkins</name></author>	</entry>

	</feed>