Skip to content

Replace DNS-SD dependency with built-in mDNS responder, and Add multi-platform CI build verification#523

Open
kgbook wants to merge 5 commits into
FDH2:masterfrom
kgbook:master
Open

Replace DNS-SD dependency with built-in mDNS responder, and Add multi-platform CI build verification#523
kgbook wants to merge 5 commits into
FDH2:masterfrom
kgbook:master

Conversation

@kgbook
Copy link
Copy Markdown

@kgbook kgbook commented May 16, 2026

Summary

  1. Replace the DNS-SD/Avahi dependency with a built-in mDNS responder.

The previous implementation depended on avahi-daemon for DNS-SD/mDNS service discovery and advertisement. While this works well on typical Linux desktop/server environments, avahi-daemon is relatively heavy for embedded targets and introduces extra runtime dependencies, daemon management, and deployment complexity.

This is especially problematic for cross-platform support, particularly on Android, where running and managing an external Avahi daemon is not practical and may conflict with the platform’s permission and service model.

This PR rewrites the mDNS responder internally, removing the dependency on Avahi/DNS-SD while keeping the required service discovery and advertisement behavior.

  1. Adds multi-platform CI build verification for:
  • Linux (ubuntu-latest): cmake, GStreamer, OpenSSL, libplist, DBus
  • macOS (macos-latest): Homebrew dependencies
  • Windows (windows-latest): MSYS2 + MinGW toolchain

Triggered on push and PR to master/main branches.

Platform Key Dependencies
Linux cmake, g++, make, libssl-dev, libplist-dev, gstreamer1.0-dev, libdbus-1-dev
macOS cmake, openssl@3, libplist, glib, gstreamer, gst-plugins-base, gst-plugins-good
Windows mingw-w64-x86_64-cmake, mingw-w64-x86_64-gcc, openssl, libplist, gstreamer

Motivation

  • Reduce external runtime dependencies
  • Avoid requiring avahi-daemon
  • Improve portability across Linux, Android, and embedded platforms
  • Simplify deployment and integration
  • Make mDNS behavior easier to control inside the application
  • Triggered CI workflow on push and PR to master/main branches.

Changes

  • Removed dependency on DNS-SD/Avahi
  • Added a built-in mDNS responder implementation
  • Reimplemented service announcement and response handling
  • Kept compatibility with existing mDNS/DNS-SD behavior
  • Verified the new implementation works correctly in testing

Validation

The rewritten mDNS responder has been tested and verified successfully, including service discovery and response behavior.

kgbook and others added 5 commits May 16, 2026 09:41
- Linux (ubuntu-latest): CMake + GStreamer + OpenSSL + libplist + DBus
- macOS (macos-latest): Homebrew dependencies
- Windows (windows-latest): MSYS2 + MinGW toolchain

Triggered on push and PR to master/main branches
GitHub Actions ubuntu-latest requires sudo for package installation
@kgbook kgbook changed the title Replace DNS-SD dependency with built-in mDNS responder Replace DNS-SD dependency with built-in mDNS responder, and Add multi-platform CI build verification May 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant