What is it?
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 Simplified BSD license.
How do I get it?
ohNet is available as source code. Setup a (free) github account then
git clone firstname.lastname@example.org:openhome/ohNet.git ohnet
cd ohnet make
There are also binaries available for certain popular platforms/architectures.
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.