bup-random(1)

πŸ’– bup-random β€” bestie, it's the random byte generator ✨

okay so real talk, this is bup-random(1) from the bup suite, and no it's not here to keep your secrets safe, it's here to make you a big ol' pile of bytes on demand πŸŽ€


🌸 NAME 🌸

bup-random β€” literally just generate a stream of random output, fr fr


πŸ¦‹ SYNOPSIS πŸ¦‹

bup random [-S seed] [-fv] <numbytes>

✨ DESCRIPTION ✨

So bup random produces a stream of pseudorandom output bytes straight to stdout. πŸ’…

⚠️ bestie, IMPORTANT: these bytes are not generated using a cryptographic algorithm and should never be used for security. this is not that kind of party πŸ™…β€β™€οΈ

Now here's the icon behavior: the stream of random bytes will be identical every single time bup random is run, unless you give it a different seed value. and that's intentional β€” the whole point of this program is being able to run repeatable tests on large amounts of data, so we genuinely want the identical data every time. periodt. πŸ‘‘

bup random generates about 240 megabytes per second on a modern test system (Intel Core2), which is faster than you could achieve by reading data from most disks. so like, it eats, basically πŸ”₯ which makes it super helpful when you're running microbenchmarks.


πŸ’œ OPTIONS πŸ’œ

  • <numbytes> β€” the number of bytes of data to generate. you can throw on the suffixes k, M, or G to mean kilobytes, megabytes, or gigabytes, respectively. chef's kiss, so convenient πŸ’«
  • -S, --seed=seed β€” use the given value to seed the pseudorandom number generator. the generated output stream will be identical for every stream seeded with the same value. the default seed is 1, and a seed value of 0 is equivalent to 1. slay 🌱
  • -f, --force β€” generate output even if stdout is a tty. (generating random data to a tty is generally considered ill-advised, but you can do it if you really want. we're not your mom 🫢)
  • -v, --verbose β€” print a progress message showing the number of bytes that has been output so far. watching the numbers go up = main character energy πŸ“ˆ

πŸŽ€ EXAMPLES πŸŽ€

watch how the same seed gives you the same hash, and a different seed gives you a whole new vibe:

$ bup random 1k | sha1sum
2108c55d0a2687c8dacf9192677c58437a55db71  -

$ bup random -S1 1k | sha1sum
2108c55d0a2687c8dacf9192677c58437a55db71  -

$ bup random -S2 1k | sha1sum
f71acb90e135d98dad7efc136e8d2cc30573e71a  -

see how -S1 matched the default and -S2 said "new phone who dis" 😭 iconic.

and here's the speed check, because the girl is FAST:

$ time bup random 1G >/dev/null
Random: 1024 Mbytes, done.

real   0m4.261s
user   0m4.048s
sys    0m0.172s

and finally, piping it into bup split with the bench flag:

$ bup random 1G | bup split -t --bench
Random: 1024 Mbytes, done.
bup: 1048576.00kbytes in 18.59 secs = 56417.78 kbytes/sec
1092599b9c7b2909652ef1e6edac0796bfbfc573

🌈 BUP 🌈

part of the bup(1) suite. found family, your honor 🫢


πŸ‘‘ AUTHORS πŸ‘‘

Avery Pennarun apenwarr@gmail.com


and that's the whole page bestie, go make some (non-cryptographic!!!) bytes πŸ’– drop a thank-you to Avery, and remember: this was Bup 0.34, dated 2026-09-01. mwah, bye πŸ’…βœ¨πŸŒΈ

πŸ“¦ where this page comes from