Skip to content

Common Libraries

Andrew Bonney edited this page Mar 18, 2019 · 6 revisions

The NMOS specifications make extensive use of pre-existing technologies which are defined in other documents such as IETF RFCs. In most cases it should not be necessary to implement these technologies from the ground up. The following pointers are provided to some useful libraries which already implement commonly used technologies in a variety of programming languages.

HTTP API Frameworks

Library Language
Flask Python

HTTP Clients

Library Language
Requests Python

DNS Service Discovery (DNS-SD)

Library Language Multicast Support Unicast Support Caveats
pybonjour Python Y Y* Supports Unicast queries on Windows and Mac but not Linux
python-zeroconf Python Y N Newer versions cannot advertise the over-long _nmos-registration._tcp name without modification (see #34 and zeroconf-monkey).
avahi-python Python Y Y* Unicast support requires re-querying of the Avahi daemon periodically. There can be issues closing sockets when doing this resulting in file descriptor leaks.
dnspython Python N Y
avahi-... C Y ?
mDNSResponder C Y Y* Cannot handle the _nmos-registration._tcp name when using unicast DNS (see #34)