zeekayandHanzo Dev bc9b8dd3a2 Go 1.27.1, and the code it can say more simply
The module declares go 1.27.1. go fix applied the modernizers; omitzero
is not applied, since it changes what the JSON says.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-16 18:46:46 -07:00
2026-06-28 20:43:46 -07:00
2026-06-02 11:12:22 -07:00
2026-06-28 20:43:47 -07:00

mdns

mdns

Zero-configuration peer discovery for local networks using mDNS/DNS-SD.

import "github.com/luxfi/mdns"

Quick Start

// Create discovery for your service
disc := mdns.New("_myservice._tcp", "node-1", 8080,
    mdns.WithMetadata(map[string]string{
        "version": "1.0.0",
    }),
)

// Handle peer events
disc.OnPeer(func(peer *mdns.Peer, joined bool) {
    if joined {
        fmt.Printf("Peer joined: %s at %s\n", peer.NodeID, peer.Address())
    } else {
        fmt.Printf("Peer left: %s\n", peer.NodeID)
    }
})

// Start discovery
if err := disc.Start(); err != nil {
    log.Fatal(err)
}
defer disc.Stop()

// List all peers
for _, peer := range disc.Peers() {
    fmt.Printf("Found: %s\n", peer.NodeID)
}

Service Types

Service Type
FHE daemon _fhed._tcp
MPC daemon _mpcd._tcp
Lux node _luxd._tcp

Options

mdns.New(serviceType, nodeID, port,
    mdns.WithLogger(logger),           // Custom slog logger
    mdns.WithMetadata(map[string]string{}), // TXT record metadata
    mdns.WithBrowseInterval(5*time.Second), // How often to scan
    mdns.WithBrowseTimeout(3*time.Second),  // Scan timeout
    mdns.WithStaleTimeout(30*time.Second),  // When peers are lost
)

API

// Lifecycle
disc.Start() error
disc.Stop()

// Events
disc.OnPeer(func(peer *Peer, joined bool))

// Query
disc.Peers() []*Peer
disc.Peer(nodeID string) *Peer
disc.PeerCount() int
disc.NodeID() string
disc.ServiceType() string

// Peer
peer.Address() string      // "192.168.1.1:8080"
peer.Get("key") string     // Metadata lookup
peer.Age() time.Duration   // Since last seen
peer.Clone() *Peer

License

Copyright (C) 2025, Lux Industries Inc. All rights reserved.

S
Description
mDNS library for Lux network
Readme
55 KiB
Languages
Go 100%