You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
0conf — pure Common Lisp mDNS (RFC 6762) and DNS-SD (RFC 6763) #2611
0conf is a pure Common Lisp implementation of mDNS (RFC 6762) and DNS-SD
(RFC 6763) — "zeroconf" service advertisement and discovery on the local link.
It is what you would use to advertise a service so that Bonjour/Avahi clients
find it, or to discover printers, Chromecasts, HomeKit accessories, and the like
from Lisp, without shelling out to dns-sd/avahi-browse or binding to
mDNSResponder over C.
It is not an FFI wrapper: the DNS wire codec (with name compression), the record
cache with mDNS cache-flush/goodbye semantics, DNS-SD service expansion and
reassembly, probing with conflict renaming, known-answer suppression, NSEC
negative responses, and legacy-unicast handling are all implemented in Lisp.
The only non-portable part is the multicast socket layer, which uses sb-bsd-sockets plus sb-alien for setsockopt/getifaddrs — so the system
is SBCL only, and declares sb-bsd-sockets as a dependency the way usocket
does.
Systems: 0conf (the library), 0conf/cli (a standalone dns-sd-like
command-line tool), 0conf/test (FiveAM suite)
Dependencies: alexandria, nibbles, bordeaux-threads, sb-bsd-sockets
(fiveam for the test system)
:description, :author and :license are set on every system, there is a
README describing the project and its API, and CI runs the test suite (97 tests
/ 250 checks) on Linux and macOS on every push.
Activity