Golang binding for Avahi announce

Alexander Pevzner pzz at apevzner.com
Wed Nov 20 08:12:52 UTC 2024


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.

-- 

	Wishes, Alexander Pevzner (pzz at apevzner.com)



More information about the avahi mailing list