IP Multicast comes in two flavours: any-source multicast (ASM) which uses just a group IP address, and source-specific multicast (SSM defined in RFC 4607 ) which uses a tuple of source and group address.
std::net:UdpSocket has support for ASM via join_multicast_v4
and join_multicast_v6
and their equivalent leave functions. However, AFAICT there is not an explicit friendly API for SSM. This is unfortunate because there are several classes of problem which exist for ASM (see this IETF draft document that discusses deprecation of ASM for interdomain multicast), and which SSM fixes.
A couple of years ago I wanted to build a Node.js SSM application and found that it too didn't expose a nice API. So I opened this PR to add one, which itself was built on top of a PR to libuv. Those PRs were landed recently but since my interests have now moved to Rust, I figured I'd start the ball rolling here by creating a topic and getting some feedback. Especially the testing aspects of multicast can be a bit quirky, so getting a handle on that early would be a help.