Pupnp basiert auf dem ursprünglichen libupnp-Code, und man merkt das Alter... Es in einer Anwendung zu verwenden, ist meiner Meinung nach schmerzhaft. Es scheint nicht wie eine große Sache, wenn Sie nur Dinge testen, aber wenn Sie eine komplexe Anwendung haben die Schmerzen ist ziemlich real.
Eine Sache, die man bei Platinum beachten sollte, ist, dass es im Gegensatz zu den meisten Linux-Bibliotheken unter der GPL steht. Das und die Tatsache, dass es nicht einmal in den wichtigsten Linux-Distributionen verfügbar ist, hat dazu geführt, dass ich es nie ausprobiert habe, so dass ich es nicht ausführlicher bewerten kann.
Meine eigene Wahl würde lauten GUPnP (obwohl man mich leicht als voreingenommen bezeichnen könnte): Es ist in C geschrieben, verwendet Glib und ist unter der LGPL lizenziert. Mobile und Set-Top-Geräte, die mit GUPnP hergestellt wurden, werden bereits in der realen Welt verwendet. Sowohl UPnP als auch DLNA haben mit GUPnP hergestellte Geräte und Dienste zertifiziert. Die Bibliothek hat einige Abhängigkeiten (libsoup, libxml2), aber ich glaube, dass diese aus guten Gründen vorhanden sind. Die API schafft es meistens, die Dinge für den Benutzer einfach zu machen, ohne die Leistung zu beeinträchtigen - und das ist etwas, was die meisten UPnP-Stacks nicht behaupten können.