|
|
- Metadata-Version: 2.1
- Name: zeroconf
- Version: 0.21.3
- Summary: Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)
- Home-page: https://github.com/jstasiak/python-zeroconf
- Author: Paul Scott-Murphy, William McBrine, Jakub Stasiak
- Author-email: UNKNOWN
- License: LGPL
- Keywords: Bonjour,Avahi,Zeroconf,Multicast DNS,Service Discovery,mDNS
- Platform: unix
- Platform: linux
- Platform: osx
- Classifier: Development Status :: 3 - Alpha
- Classifier: Intended Audience :: Developers
- Classifier: Intended Audience :: System Administrators
- Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
- Classifier: Operating System :: POSIX
- Classifier: Operating System :: POSIX :: Linux
- Classifier: Operating System :: MacOS :: MacOS X
- Classifier: Topic :: Software Development :: Libraries
- Classifier: Programming Language :: Python :: 3.4
- Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Requires-Dist: ifaddr
- Requires-Dist: typing; python_version < "3.5"
-
- python-zeroconf
- ===============
-
- .. image:: https://travis-ci.org/jstasiak/python-zeroconf.svg?branch=master
- :target: https://travis-ci.org/jstasiak/python-zeroconf
-
- .. image:: https://img.shields.io/pypi/v/zeroconf.svg
- :target: https://pypi.python.org/pypi/zeroconf
-
- .. image:: https://img.shields.io/coveralls/jstasiak/python-zeroconf.svg
- :target: https://coveralls.io/r/jstasiak/python-zeroconf
-
-
- This is fork of pyzeroconf, Multicast DNS Service Discovery for Python,
- originally by Paul Scott-Murphy (https://github.com/paulsm/pyzeroconf),
- modified by William McBrine (https://github.com/wmcbrine/pyzeroconf).
-
- The original William McBrine's fork note::
-
- This fork is used in all of my TiVo-related projects: HME for Python
- (and therefore HME/VLC), Network Remote, Remote Proxy, and pyTivo.
- Before this, I was tracking the changes for zeroconf.py in three
- separate repos. I figured I should have an authoritative source.
-
- Although I make changes based on my experience with TiVos, I expect that
- they're generally applicable. This version also includes patches found
- on the now-defunct (?) Launchpad repo of pyzeroconf, and elsewhere
- around the net -- not always well-documented, sorry.
-
- Compatible with:
-
- * Bonjour
- * Avahi
-
- Compared to some other Zeroconf/Bonjour/Avahi Python packages, python-zeroconf:
-
- * isn't tied to Bonjour or Avahi
- * doesn't use D-Bus
- * doesn't force you to use particular event loop or Twisted
- * is pip-installable
- * has PyPI distribution
-
- Python compatibility
- --------------------
-
- * CPython 3.4+
- * PyPy3 5.8+
-
- Versioning
- ----------
-
- This project's versions follow the following pattern: MAJOR.MINOR.PATCH.
-
- * MAJOR version has been 0 so far
- * MINOR version is incremented on backward incompatible changes
- * PATCH version is incremented on backward compatible changes
-
- Status
- ------
-
- There are some people using this package. I don't actively use it and as such
- any help I can offer with regard to any issues is very limited.
-
-
- How to get python-zeroconf?
- ===========================
-
- * PyPI page https://pypi.python.org/pypi/zeroconf
- * GitHub project https://github.com/jstasiak/python-zeroconf
-
- The easiest way to install python-zeroconf is using pip::
-
- pip install zeroconf
-
-
-
- How do I use it?
- ================
-
- Here's an example of browsing for a service:
-
- .. code-block:: python
-
- from zeroconf import ServiceBrowser, Zeroconf
-
-
- class MyListener:
-
- def remove_service(self, zeroconf, type, name):
- print("Service %s removed" % (name,))
-
- def add_service(self, zeroconf, type, name):
- info = zeroconf.get_service_info(type, name)
- print("Service %s added, service info: %s" % (name, info))
-
-
- zeroconf = Zeroconf()
- listener = MyListener()
- browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
- try:
- input("Press enter to exit...\n\n")
- finally:
- zeroconf.close()
-
- .. note::
-
- Discovery and service registration use *all* available network interfaces by default.
- If you want to customize that you need to specify ``interfaces`` argument when
- constructing ``Zeroconf`` object (see the code for details).
-
- If you don't know the name of the service you need to browse for, try:
-
- .. code-block:: python
-
- from zeroconf import ZeroconfServiceTypes
- print('\n'.join(ZeroconfServiceTypes.find()))
-
- See examples directory for more.
-
- Changelog
- =========
-
- 0.21.3
- ------
-
- * This time really allowed incoming service names to contain underscores (patch released
- as part of 0.20.0 was defective)
-
- 0.21.2
- ------
-
- * Fixed import-time typing-related TypeError when older typing version is used
-
- 0.21.1
- ------
-
- * Fixed installation on Python 3.4 (we use typing now but there was no explicit dependency on it)
-
- 0.21.0
- ------
-
- * Added an error message when importing the package using unsupported Python version
- * Fixed TTL handling for published service
- * Implemented unicast support
- * Fixed WSL (Windows Subsystem for Linux) compatibility
- * Fixed occassional UnboundLocalError issue
- * Fixed UTF-8 multibyte name compression
- * Switched from netifaces to ifaddr (pure Python)
- * Allowed incoming service names to contain underscores
-
- 0.20.0
- ------
-
- * Dropped support for Python 2 (this includes PyPy) and 3.3
- * Fixed some class' equality operators
- * ServiceBrowser entries are being refreshed when 'stale' now
- * Cache returns new records first now instead of last
-
- 0.19.1
- ------
-
- * Allowed installation with netifaces >= 0.10.6 (a bug that was concerning us
- got fixed)
-
- 0.19.0
- ------
-
- * Technically backwards incompatible - restricted netifaces dependency version to
- work around a bug, see https://github.com/jstasiak/python-zeroconf/issues/84 for
- details
-
- 0.18.0
- ------
-
- * Dropped Python 2.6 support
- * Improved error handling inside code executed when Zeroconf object is being closed
-
- 0.17.7
- ------
-
- * Better Handling of DNS Incoming Packets parsing exceptions
- * Many exceptions will now log a warning the first time they are seen
- * Catch and log sendto() errors
- * Fix/Implement duplicate name change
- * Fix overly strict name validation introduced in 0.17.6
- * Greatly improve handling of oversized packets including:
-
- - Implement name compression per RFC1035
- - Limit size of generated packets to 9000 bytes as per RFC6762
- - Better handle over sized incoming packets
-
- * Increased test coverage to 95%
-
- 0.17.6
- ------
-
- * Many improvements to address race conditions and exceptions during ZC()
- startup and shutdown, thanks to: morpav, veawor, justingiorgi, herczy,
- stephenrauch
- * Added more test coverage: strahlex, stephenrauch
- * Stephen Rauch contributed:
-
- - Speed up browser startup
- - Add ZeroconfServiceTypes() query class to discover all advertised service types
- - Add full validation for service names, types and subtypes
- - Fix for subtype browsing
- - Fix DNSHInfo support
-
- 0.17.5
- ------
-
- * Fixed OpenBSD compatibility, thanks to Alessio Sergi
- * Fixed race condition on ServiceBrowser startup, thanks to gbiddison
- * Fixed installation on some Python 3 systems, thanks to Per Sandström
- * Fixed "size change during iteration" bug on Python 3, thanks to gbiddison
-
- 0.17.4
- ------
-
- * Fixed support for Linux kernel versions < 3.9 (thanks to Giovanni Harting
- and Luckydonald, GitHub pull request #26)
-
- 0.17.3
- ------
-
- * Fixed DNSText repr on Python 3 (it'd crash when the text was longer than
- 10 bytes), thanks to Paulus Schoutsen for the patch, GitHub pull request #24
-
- 0.17.2
- ------
-
- * Fixed installation on Python 3.4.3+ (was failing because of enum34 dependency
- which fails to install on 3.4.3+, changed to depend on enum-compat instead;
- thanks to Michael Brennan for the original patch, GitHub pull request #22)
-
- 0.17.1
- ------
-
- * Fixed EADDRNOTAVAIL when attempting to use dummy network interfaces on Windows,
- thanks to daid
-
- 0.17.0
- ------
-
- * Added some Python dependencies so it's not zero-dependencies anymore
- * Improved exception handling (it'll be quieter now)
- * Messages are listened to and sent using all available network interfaces
- by default (configurable); thanks to Marcus Müller
- * Started using logging more freely
- * Fixed a bug with binary strings as property values being converted to False
- (https://github.com/jstasiak/python-zeroconf/pull/10); thanks to Dr. Seuss
- * Added new ``ServiceBrowser`` event handler interface (see the examples)
- * PyPy3 now officially supported
- * Fixed ServiceInfo repr on Python 3, thanks to Yordan Miladinov
-
- 0.16.0
- ------
-
- * Set up Python logging and started using it
- * Cleaned up code style (includes migrating from camel case to snake case)
-
- 0.15.1
- ------
-
- * Fixed handling closed socket (GitHub #4)
-
- 0.15
- ----
-
- * Forked by Jakub Stasiak
- * Made Python 3 compatible
- * Added setup script, made installable by pip and uploaded to PyPI
- * Set up Travis build
- * Reformatted the code and moved files around
- * Stopped catching BaseException in several places, that could hide errors
- * Marked threads as daemonic, they won't keep application alive now
-
- 0.14
- ----
-
- * Fix for SOL_IP undefined on some systems - thanks Mike Erdely.
- * Cleaned up examples.
- * Lowercased module name.
-
- 0.13
- ----
-
- * Various minor changes; see git for details.
- * No longer compatible with Python 2.2. Only tested with 2.5-2.7.
- * Fork by William McBrine.
-
- 0.12
- ----
-
- * allow selection of binding interface
- * typo fix - Thanks A. M. Kuchlingi
- * removed all use of word 'Rendezvous' - this is an API change
-
- 0.11
- ----
-
- * correction to comments for addListener method
- * support for new record types seen from OS X
- - IPv6 address
- - hostinfo
-
- * ignore unknown DNS record types
- * fixes to name decoding
- * works alongside other processes using port 5353 (e.g. on Mac OS X)
- * tested against Mac OS X 10.3.2's mDNSResponder
- * corrections to removal of list entries for service browser
-
- 0.10
- ----
-
- * Jonathon Paisley contributed these corrections:
-
- - always multicast replies, even when query is unicast
- - correct a pointer encoding problem
- - can now write records in any order
- - traceback shown on failure
- - better TXT record parsing
- - server is now separate from name
- - can cancel a service browser
-
- * modified some unit tests to accommodate these changes
-
- 0.09
- ----
-
- * remove all records on service unregistration
- * fix DOS security problem with readName
-
- 0.08
- ----
-
- * changed licensing to LGPL
-
- 0.07
- ----
-
- * faster shutdown on engine
- * pointer encoding of outgoing names
- * ServiceBrowser now works
- * new unit tests
-
- 0.06
- ----
- * small improvements with unit tests
- * added defined exception types
- * new style objects
- * fixed hostname/interface problem
- * fixed socket timeout problem
- * fixed add_service_listener() typo bug
- * using select() for socket reads
- * tested on Debian unstable with Python 2.2.2
-
- 0.05
- ----
-
- * ensure case insensitivty on domain names
- * support for unicast DNS queries
-
- 0.04
- ----
-
- * added some unit tests
- * added __ne__ adjuncts where required
- * ensure names end in '.local.'
- * timeout on receiving socket for clean shutdown
-
-
- License
- =======
-
- LGPL, see COPYING file for details.
-
-
|