Compare commits

...

1 commit

Author SHA1 Message Date
edd1873f68 Version 0.1.1 2025-05-28 22:30:59 -05:00
4 changed files with 18 additions and 14 deletions

2
Cargo.lock generated
View file

@ -83,7 +83,7 @@ dependencies = [
[[package]] [[package]]
name = "rs-random" name = "rs-random"
version = "0.1.0" version = "0.1.1"
dependencies = [ dependencies = [
"rand", "rand",
] ]

View file

@ -1,6 +1,6 @@
[package] [package]
name = "rs-random" name = "rs-random"
version = "0.1.0" version = "0.1.1"
edition = "2024" edition = "2024"
[dependencies] [dependencies]

View file

@ -7,9 +7,9 @@ A minimal, blazing-fast Rust command-line tool for generating secure random stri
## Features ## Features
- Uses operating system entropy (`OsRng`) for cryptographically secure randomness - Uses operating system entropy (`OsRng`) for cryptographically secure randomness
- Very small binary size (optimized release profile)
- Minimal dependencies (only the `rand` crate with `std_rng` and `getrandom` features)
- Flexible selection of character sets, including alphabets, numbers, symbols, and more - Flexible selection of character sets, including alphabets, numbers, symbols, and more
- Very small binary size
- Minimal dependencies
## About ## About
@ -17,6 +17,10 @@ I created `rs-random` to have a super simple, minimal way to generate secure str
## Installation ## Installation
### Windows
Download the latest Windows executable from the [releases page](https://git.caileb.com/Caileb/rs-random/releases).
### From Source ### From Source
```bash ```bash
@ -30,14 +34,14 @@ cargo build --release
```bash ```bash
rs-random [LENGTH] rs-random [LENGTH]
rs-random -l <LENGTH> [-s <SETS>] [-c <COUNT>] rs-random -l <LENGTH> [-s <SETS>] [-c <COUNT>]
rs-random -h | --help rs-random -h
``` ```
- `LENGTH` &lt;number&gt;: Length of each string (default: `16`) - `LENGTH` &lt;number&gt;: Length of each string (default: `16`)
- `-l, --length <LENGTH>`: Specify the string length - `-l <LENGTH>`: Specify the string length
- `-s, --sets <SETS>`: Comma-separated list of character sets to include (default: `lowercase,uppercase,numbers,special-safe`) - `-s <SETS>`: Comma-separated list of character sets to include (default: `lowercase,uppercase,numbers,special-safe`)
- `-c, --count <COUNT>`: Number of strings to generate (default: `1`) - `-c <COUNT>`: Number of strings to generate (default: `1`)
- `-h, --help`: Show help information - `-h`: Show help information
### Available Character Sets ### Available Character Sets

View file

@ -21,7 +21,7 @@ fn print_help() {
println!("Usage:"); println!("Usage:");
println!(" rs-random [LENGTH] (uses safe defaults)"); println!(" rs-random [LENGTH] (uses safe defaults)");
println!(" rs-random -l <LEN> [-s <SETS>] [-c <COUNT>]"); println!(" rs-random -l <LEN> [-s <SETS>] [-c <COUNT>]");
println!(" rs-random -h | --help\n"); println!(" rs-random -h\n");
println!("Available sets (for -s, comma-separated):"); println!("Available sets (for -s, comma-separated):");
for &(name, _, desc) in &CHARACTER_SETS { for &(name, _, desc) in &CHARACTER_SETS {
println!(" {:<15} - {}", name, desc); println!(" {:<15} - {}", name, desc);
@ -68,7 +68,7 @@ fn generate_random_string(chars: &[char], length: usize) -> String {
fn main() { fn main() {
let args: Vec<String> = env::args().collect(); let args: Vec<String> = env::args().collect();
if args.len() < 2 || args.contains(&"-h".to_string()) || args.contains(&"--help".to_string()) { if args.len() < 2 || args.contains(&"-h".to_string()) {
print_help(); print_help();
return; return;
} }
@ -80,7 +80,7 @@ fn main() {
let mut i = 1; let mut i = 1;
while i < args.len() { while i < args.len() {
match args[i].as_str() { match args[i].as_str() {
"-l" | "--length" => { "-l" => {
if i + 1 < args.len() { if i + 1 < args.len() {
if let Ok(n) = args[i + 1].parse::<usize>() { if let Ok(n) = args[i + 1].parse::<usize>() {
length = n; length = n;
@ -94,7 +94,7 @@ fn main() {
process::exit(1); process::exit(1);
} }
} }
"-s" | "--sets" => { "-s" => {
if i + 1 < args.len() { if i + 1 < args.len() {
sets = &args[i + 1]; sets = &args[i + 1];
i += 2; i += 2;
@ -103,7 +103,7 @@ fn main() {
process::exit(1); process::exit(1);
} }
} }
"-c" | "--count" => { "-c" => {
if i + 1 < args.len() { if i + 1 < args.len() {
if let Ok(n) = args[i + 1].parse::<usize>() { if let Ok(n) = args[i + 1].parse::<usize>() {
count = n; count = n;