| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A simple command-line tool for testing multicast connectivity by sending and receiving UDP multicast packets with timestamps and sequence numbers.
There are lots of other tools that provide similar functionality. This was largely an experiment in vibe-coding. The entirety of the application was written via assistance from Claude Code.
For a while now I had been meaning to see how far I could get with simple(ish) tooling via vibe-coding. I needed to pick a project to do it with, and I just happened to be in the middle of a multicast refresher so figured why not.
All things considered it worked out pretty well. Getting an MVP to work with Linux and MacOS was pretty straightforward, maybe an hour of work. There was another hour maybe two of me going, "that was too easy", then playing the role of PM armed with feature creep pistols aimed at Claude.
We also wasted a few additional hours trying to get a cross-platform version that included Windows before giving up.
After some peer review from unaware friends who are more Go-savvy than I, the general consensus seems to be that it's reasonably clean, readable code.
git clone https://github.com/hyposcaler-bot/mcaster.git
cd mcaster
make buildgo install github.com/hyposcaler-bot/mcaster/cmd/mcaster@latest# Send to default group (239.23.23.23:2323)
./bin/mcaster send
# Send to specific group with custom interval
./bin/mcaster send -g 224.0.1.1:8080 -t 500ms# Receive from default group
./bin/mcaster receive
# Receive from specific group via specific interface
./bin/mcaster receive -g 224.0.1.1:8080 -i eth0# Basic usage
mcaster send
mcaster receive
# Custom multicast group
mcaster send --group 224.0.1.1:8080
mcaster receive --group 224.0.1.1:8080
# Bind to specific interface
mcaster send --interface eth0
mcaster receive --interface eth0
# Fast sending interval
mcaster send --interval 100ms
# Custom TTL for cross-router testing
mcaster send --ttl 32
# Send from specific source port
mcaster send --sport 12345
# Send to specific destination port
mcaster send --dport 8080
mcaster receive --dport 8080
# Using environment variables
MULTICAST_GROUP=224.0.1.1:8080 mcaster send
MULTICAST_INTERFACE=eth0 mcaster receive
MULTICAST_TTL=16 MULTICAST_SPORT=12345 MULTICAST_DPORT=8080 mcaster sendCreate ~/.mcaster.yaml:
group: "239.23.23.23:2323"
interface: "eth0"
interval: "500ms"
ttl: 16
sport: 12345
dport: 8080🚀 Starting multicast sender to 239.23.23.23:2323 📡 Sending packets every 1s (TTL: 1, source port: 54321) ⏹️ Press Ctrl+C to stop 📤 [15:04:05.123] Sent packet #1 📤 [15:04:06.124] Sent packet #2
🎯 Starting multicast receiver on 239.23.23.23:2323 👂 Waiting for packets... 📥 [15:04:05.125] Received packet #1 from hostname (192.168.1.100:54321) - delay: 2ms 📥 [15:04:06.126] Received packet #2 from hostname (192.168.1.100:54321) - delay: 2ms
Basic connectivity test:
# Terminal 1
mcaster receive
# Terminal 2
mcaster sendCross-subnet testing:
# On receiver host
mcaster receive -g 224.0.1.1:8080 -i eth0
# On sender host
mcaster send -g 224.0.1.1:8080 -i eth0Performance testing:
# High-frequency sending
mcaster send -t 10ms| Back | FazBrowse Home | New Git URL |