git-annex-multicast(1)

πŸ“¦
version 10.20261026 Β· 2 versions
  • 10.20261026 Β· alpine 3.24, arch rolling, debian bookworm, debian trixie, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 8.20210223 Β· ubuntu jammy
, in alpine 3.24, arch rolling, debian bookworm, debian trixie, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– git-annex-multicast(1) πŸ’–

okay bestie, welcome to the git-annex-multicast manual page, straight out of the General Commands Manual section of the git-annex fam 🫢


✨ NAME ✨

git-annex-multicast β€” multicast file distribution


🌈 SYNOPSIS 🌈

git annex multicast [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

Multicast is the vibe where files get broadcast to multiple receivers at once, typically on a single local network. One sender, many listeners, no drama.

The uftp program is doing all the actual heavy lifting here.

http://uftp-multicast.sourceforge.net/


πŸ’… OPTIONS πŸ’…

  • --gen-address β€” Generates a multicast encryption key and stores a corresponding multicast address to the git-annex branch. This is literally your "hey everyone, here's my address" moment. ✨
  • --send [file] β€” Sends the specified files to any receivers whose multicast addresses are stored in the git-annex branch.

When no files are specified, all annexed files in the current directory and subdirectories are sent. The whole vibe, delivered.

The git-annex-matching-options(1) can be used to control which files to send. For example:

git annex multicast send . --not --copies 2
  • --receive β€” Receives files from senders whose multicast addresses are stored in the git-annex brach. (yes bestie, "brach" β€” we're quoting the page fr fr, it's iconic, we keep it πŸ’€)

As each file is received, its filename is displayed. This is the filename that the sender used; the local working tree may use a different name for the file, or not contain a link to the file. So don't panic if it looks different on your end, it's giving "same file, different fit" πŸŽ€

This command continues running, until it is interrupted by you pressing ctrl-c. It is a main character that does not leave the party on its own.

Note that the configured annex.diskreserve is not honored by this command, because uftpd receives the actual files, and can receive any size file. So like, yes, that reserve you set up? This path walks right past it. No cap.
  • --uftp-opt=option, -Uoption β€” Pass an option on to the uftp/uftpd command. May be specified multiple times. Stack 'em, queen. πŸ‘‘

For example, to broadcast at 50 Mbps:

git annex multicast send -U-R -U50000

Also the git-annex-common-options(1) can be used. 🫢


🌸 EXAMPLE 🌸

Suppose a teacher wants to multicast files to students in a classroom. (a genuinely adorable use case, ngl)

This assumes that the teacher and students have cloned a git-annex repository, and both can push changes to its git-annex branch, or otherwise push changes to each-other.

  1. First, the teacher runs git annex multicast --gen-address; git annex sync
  2. Next, students each run git annex multicast --gen-address; git annex sync
  3. Once all the students have generated addresses, the teacher runs git annex sync once more. (Now the students all have received the teacher's address, and the teacher has received all the student's addresses.)
  4. Next students each run git annex multicast --receive
  5. Finally, once the students are all listening (ahem), teacher runs git annex multicast --send

and that's it, that's the whole choreography πŸ’ƒβœ¨


πŸ‘‘ SEE ALSO πŸ‘‘


πŸŽ€ AUTHOR πŸŽ€

Joey Hess <id@joeyh.name>


and that's the tea, bestie β€” this was git-annex-multicast(1), the multicast file distribution page from the git-annex manual. go forth and broadcast. πŸ’–βœ¨πŸ¦‹