2 releases
Uses new Rust 2024
new 0.1.1 | Mar 11, 2025 |
---|---|
0.1.0 | Mar 10, 2025 |
#285 in Command line utilities
49 downloads per month
34KB
551 lines
randgen
randgen is a tool which generates random bytes using a pseudorandom number generator (PRNG).
Installation
From source
cargo install randgen
From binaries
The release page contains pre-built binaries for Linux, macOS and Windows.
How to build
Please see BUILD.adoc.
Usage
Basic usage
Generate 1 KiB of random bytes:
randgen 1KiB
Output formats
The following output formats are available:
raw
(encode the generated bytes as raw bytes)base64
(encode the generated bytes as base64)base64url
(encode the generated bytes as URL-safe base64)hex
(encode the generated bytes as hex string)
The default output format is raw
. To change this, use -f
option.
randgen -f base64 256
Supported PRNGs and CSPRNGs
Supported PRNGs are:
- ISAAC RNGs (if enabled at compile time)
- Mersenne Twister RNGs (if enabled at compile time)
- PCG RNGs (if enabled at compile time)
- SFC RNGs (if enabled at compile time)
- Xorshift family
- SplitMix64 RNG
- Xorshift RNG (if enabled at compile time)
- xoroshiro RNGs
- xoshiro RNGs
Supported CSPRNGs are:
The default RNG is chacha12
. To change this, use -r
option.
randgen -r pcg64 "2 MB"
Providing a random seed
-s
option allows you to specify a 64-bit unsigned integer random seed to be
used when creating a new PRNG. If this option is not specified, the RNG seeded
via random data from system sources such as the getrandom
system call on
Linux.
$ randgen -f hex -r sfc32 -s 8 32B
24f48cd0c3f6a1c6e8d7b4dcff9578864aced749e4eb1805dfba8b6e21d0cba0
Generate shell completion
--generate-completion
option generates shell completions to standard output.
The following shells are supported:
bash
elvish
fish
nushell
powershell
zsh
Example:
randgen --generate-completion bash > randgen.bash
Command-line options
Please see the following:
Source code
The upstream repository is available at https://github.com/sorairolake/randgen.git.
Changelog
Please see CHANGELOG.adoc.
Contributing
Please see CONTRIBUTING.adoc.
License
Copyright (C) 2025 Shun Sakai (see AUTHORS.adoc)
- This program is distributed under the terms of either the Apache License 2.0 or the MIT License.
- Some files are distributed under the terms of the Creative Commons Attribution 4.0 International Public License.
This project is compliant with version 3.2 of the REUSE Specification. See copyright notices of individual files for more details on copyright and licensing information.
Dependencies
~5–14MB
~192K SLoC