@node Bundles @cindex bundles @cindex tapes @cindex streaming media @unnumbered Bundles Usual @command{@ref{nncp-xfer}} command requires filesystem it can operate on. That presumes random access media storage usage, like hard drives, USB flash drives and similar. But media like CD-ROM and especially tape drives are sequential by nature. You can prepare intermediate directory for recording to CD-ROM disc/tape, but that requires additional storage and is inconvenient. Bundles, created with @command{@ref{nncp-bundle}} command are convenient alternative to ordinary @command{@ref{nncp-xfer}}. Bundle is just a collection of @ref{Encrypted, encrypted packets}, stream of packets. It could be sequentially streamed for recording and digested back. @itemize @item They do not require intermediate storage before recording on either CD-ROM or tape drive. @example $ nncp-bundle -tx SOMENODE | cdrecord -tao - # record directly to CD $ nncp-bundle -tx SOMENODE | dd of=/dev/sa0 bs=10240 # record directly to tape $ dd if=/dev/cd0 bs=2048 | nncp-bundle -rx # read directly from CD $ dd if=/dev/sa0 bs=10240 | nncp-bundle -rx # read directly from tape @end example @item They do not require filesystem existence to deal with, simplifying administration when operating in heterogeneous systems with varying filesystems. No @command{mount}/@command{umount}, @command{zpool import}/@command{zpool export} and struggling with file permissions. @example $ nncp-bundle -tx SOMENODE | dd of=/dev/da0 bs=1M # record directly to # hard/flash drive $ dd if=/dev/da0 bs=1M | nncp-bundle -rx # read directly from drive @end example @item This is the fastest way to record outbound packets for offline transmission -- sequential write is always faster, when no metainformation needs to be updated. @item This is convenient to use with append-only storages, just sending/appending new bundles. @item Bundles could be repeatedly broadcasted in one-way transmission. @ref{Sync, Sync protocol} requires interactive connection, but bundles can contain mix of various recipients. @end itemize @pindex pax @pindex tar Technically bundle is valid POSIX.1-2001 @url{https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_01, pax archive} with directory/files hierarchy identical to that is used in @command{@ref{nncp-xfer}}: @file{NNCP/RECIPIENT/SENDER/PACKET}. So bundle can also be created by manual tar-ing of @command{@ref{nncp-xfer}} resulting directory.