Golang binding for Avahi announce

Alexander Pevzner pzz at apevzner.com
Sun Dec 15 14:11:25 UTC 2024


Hi Adam,

as far as I understand, if you perform lookup with the 
AVAHI_LOOKUP_USE_WIDE_AREA flag (which maps to LookupUseWideArea in my 
library), Avahi will use a "classical" unicast DNS instead of the mDNS.

So seems that everything is already in place and no additional effort is 
required.

-- 

	Wishes, Alexander Pevzner (pzz at apevzner.com)

On 12/15/24 11:44 AM, Adam Burns wrote:
> Hi Alexander,
> 
> Firstly, thank you for your work with Golang avahi bindings as well as 
> contributing to the improvement and clarity of Avahi API documentation!
> 
> I have been working in the area of unicast DNS-SD and we have a work-in- 
> progress prototype to allow decentralised unicast DNSSEC updates which 
> includes WA DNS-SD structures.
> 
> One core extension of our work could potentially be tighter integration 
> with Avahi. Avahi tools already support basic unicast browsing.
> 
> For example:
> 
>  avahi-browse -batd zembla.zenr.io
> +    n/a  n/a floodgap                                      _gopher._tcp 
>          zembla.zenr.io
> +    n/a  n/a zembla                                        _gopher._tcp 
>          zembla.zenr.io
> +    n/a  n/a zembla                                        _ssh._tcp 
>             zembla.zenr.io
> +    n/a  n/a PTF Demo Day - DE                             _http._tcp 
>            zembla.zenr.io
> +    n/a  n/a Freifunk Berlin                               _http._tcp 
>            zembla.zenr.io
> +    n/a  n/a PTF Demo Day - EN                             _http._tcp 
>            zembla.zenr.io
> +    n/a  n/a Freifunk - Free Networks                      _http._tcp 
>            zembla.zenr.io
> +    n/a  n/a sig0namectl Homepage                          _http._tcp 
>            zembla.zenr.io
> +    n/a  n/a Zembla Resource Map                           _http._tcp 
>            zembla.zenr.io
> +    n/a  n/a Berlin - Official Website - EN                _http._tcp 
>            zembla.zenr.io
> +    n/a  n/a redb                                          _loc._udp 
>             redb.zenr.io
> +    n/a  n/a zembla                                        _loc._udp 
>             zembla.zenr.io
> +    n/a  n/a bluebox                                       _loc._udp 
>             bluebox.zenr.io
> +    n/a  n/a op6                                           _loc._udp 
>             op6.zenr.io
> +    n/a  n/a cephalo13                                     _loc._udp 
>             cephalo13.zenr.io
> +    n/a  n/a zembla                                        _telnet._tcp 
>          zembla.zenr.io
> +    n/a  n/a mapscii                                       _telnet._tcp 
>          zembla.zenr.io
> 
> 
> Does your work currently extend into the unicast domain (pun intended) 
> as it is or would be easy to extend into?
> 
> Thanks & Regards,
> 
> Adam.
> 
> PS. Details of our early(!) work-in-progress prototype can be found at 
> https://sig0namectl.networkcommons.org - all comments, thoughts, & 
> criticisms are gratefully valued!
> 
> 
> On 20/11/2024 09:12, Alexander Pevzner wrote:
>> Hi,
>>
>> My name is Alexander Pevzner, and I am the author of two widely 
>> distributed projects: sane-airscan (a "driverless" driver for SANE 
>> scanners) and ipp-usb (a daemon for IPP-over-USB printer support). 
>> Both projects utilize Avahi extensively.
>>
>> I am excited to announce the release of a new Golang binding for Avahi:
>>
>> https://github.com/alexpevzner/go-avahi
>>
>> This binding aims to closely mirror the original C API, with a few 
>> exceptions:
>>
>> - It reports events via Go channels instead of callbacks, which is 
>> more idiomatic in Golang.
>> - It follows Go naming conventions (e.g., NewAddressResolver vs. 
>> avahi_address_resolver_new).
>> - It provides an automatic workaround for Avahi issues related to 
>> localhost and loopback address handling.
>> - It implies the AVAHI_CLIENT_NO_FAIL mode.
>>
>> Additionally, I have made an effort to create comprehensive 
>> documentation for the Avahi API:
>>
>> https://pkg.go.dev/github.com/alexpevzner/go-avahi
>>
>> Since the Go API implemented in this package closely resembles the 
>> original C API, this documentation may also be useful for users of 
>> other programming languages.
>>



More information about the avahi mailing list