git-annex multicast - multicast file distribution


git annex multicast [options]


Multicast allows files to be broadcast to multiple receivers, typically on a single local network.

The uftp program is used for multicast.


  • --gen-address

    Generates a multicast encryption key and stores a corresponding multicast address to the git-annex branch.

  • --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 git-annex-matching-options 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.

    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.

    This command continues running, until it is interrupted by you pressing ctrl-c.

    Note that the configured annex.diskreserve is not honored by this command, because uftpd receives the actual files, and can receive any size file.

  • --uftp-opt=option -Uoption

    Pass an option on to the uftp/uftpd command. May be specified multiple times.

    For example, to broadcast at 50 Mbps:

    git annex multicast send -U-R -U50000


Suppose a teacher wants to multicast files to students in a classroom.

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.

First, the teacher runs git annex multicast --gen-address; git annex sync

Next, students each run git annex multicast --gen-address; git annex sync

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.)

Next students each run git annex multicast --receive

Finally, once the students are all listening (ahem), teacher runs git annex multicast --send






Joey Hess

Warning: Automatically converted into a man page by mdwn2man. Edit with care.