Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
| edd1873f68 |
4 changed files with 18 additions and 14 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -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",
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -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]
|
||||||
|
|
|
||||||
18
README.md
18
README.md
|
|
@ -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` <number>: Length of each string (default: `16`)
|
- `LENGTH` <number>: 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
|
||||||
|
|
||||||
|
|
|
||||||
10
src/main.rs
10
src/main.rs
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue