From OpenHome

(Difference between revisions)
Jump to: navigation, search
(Updated link to prebuilt binaries)
 
(12 intermediate revisions not shown)
Line 1: Line 1:
-
== What is ohNet? ==
+
=ohNet=
-
ohNet is a modern, cross platform UPnP stack.  ohNet includes both a control point and a device stack that can be used together or independently.  It runs on Linux, Windows, Mac, iOS and Android.  The public APIs are available for the device and control point stacks in C++, C#, Java, C.  There is an JavaScript api for the control point stack.
+
 
 +
== What is it? ==
 +
OpenHome Networking (ohNet) is a modern, cross platform UPnP stack.  ohNet includes both a control point and a device stack that can be used together or independently.  It runs on Linux, Windows, Mac, iOS and Android.  The public APIs are available for the device and control point stacks in C++, C#, Java and C.  JavaScript and Python APIs are also provided for the control point stack.
UPnP services are presented as classes with actions appearing as functions and state variables appearing as member variables.  These classes are referred to as proxies for users of the control point stack and providers for users of the device stack.
UPnP services are presented as classes with actions appearing as functions and state variables appearing as member variables.  These classes are referred to as proxies for users of the control point stack and providers for users of the device stack.
Line 6: Line 8:
Proxies and Providers are included for all OpenHome and UPnP AV services.  If your application uses other services, ohNet includes a tool (ohNetGen) to generate proxies and/or providers from the service XML in any of the supported languages.
Proxies and Providers are included for all OpenHome and UPnP AV services.  If your application uses other services, ohNet includes a tool (ohNetGen) to generate proxies and/or providers from the service XML in any of the supported languages.
-
Source code is available under a Simplified BSD license.
+
Source code is available under a [https://opensource.org/licenses/MIT MIT license].
== How do I get it? ==
== How do I get it? ==
-
ohNet is available as source code from https://github.com/openhome/ohNet.
+
ohNet is available as [https://github.com/openhome/ohNet source code]. Setup a (free) github account then
-
Setup a (free) github account then
 
   git clone git@github.com:openhome/ohNet.git ohnet
   git clone git@github.com:openhome/ohNet.git ohnet
 +
build using
build using
 +
   cd ohnet
   cd ohnet
   make
   make
-
There are also binaries available for certain popular platforms/architectures.  See http://www.openhome.org/releases/artifacts/ohNet.
+
There are also [https://s3-eu-west-1.amazonaws.com/linn-artifacts-public/index.html#artifacts/ohNet/ binaries available] for certain popular platforms/architectures.
== Documentation ==
== Documentation ==
=== Overview docs ===
=== Overview docs ===
-
* [http://www.openhome.org/releases/ohNet_ControlPointStack.pdf Control Point stack (PDF)]
+
* [http://builds.openhome.org/releases/ohNet_ControlPointStack.pdf Control Point stack (PDF)]
-
* [http://www.openhome.org/releases/ohNet_DeviceStack.pdf Device stack (PDF)]
+
* [http://builds.openhome.org/releases/ohNet_DeviceStack.pdf Device stack (PDF)]
=== API docs ===
=== API docs ===

Latest revision as of 12:28, 7 June 2018

Contents

ohNet

What is it?

OpenHome Networking (ohNet) is a modern, cross platform UPnP stack. ohNet includes both a control point and a device stack that can be used together or independently. It runs on Linux, Windows, Mac, iOS and Android. The public APIs are available for the device and control point stacks in C++, C#, Java and C. JavaScript and Python APIs are also provided for the control point stack.

UPnP services are presented as classes with actions appearing as functions and state variables appearing as member variables. These classes are referred to as proxies for users of the control point stack and providers for users of the device stack.

Proxies and Providers are included for all OpenHome and UPnP AV services. If your application uses other services, ohNet includes a tool (ohNetGen) to generate proxies and/or providers from the service XML in any of the supported languages.

Source code is available under a MIT license.

How do I get it?

ohNet is available as source code. Setup a (free) github account then

 git clone git@github.com:openhome/ohNet.git ohnet

build using

 cd ohnet
 make

There are also binaries available for certain popular platforms/architectures.

Documentation

Overview docs

API docs

Discussion

Developer forum


ohNet is written using C++ with std::string replaced by special buffer classes. These buffer classes allow for more efficient use of memory at the cost of a steeper learning curve. Memory use benefits can be especially pronounced for the Device stack. API docs for this version of the stack are available but the buffer classes are intended for internal use of the library and are as such currently undocumented.