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]]
|
||||
name = "rs-random"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
dependencies = [
|
||||
"rand",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "rs-random"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
edition = "2024"
|
||||
|
||||
[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
|
||||
|
||||
- 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
|
||||
- Very small binary size
|
||||
- Minimal dependencies
|
||||
|
||||
## About
|
||||
|
||||
|
|
@ -17,6 +17,10 @@ I created `rs-random` to have a super simple, minimal way to generate secure str
|
|||
|
||||
## Installation
|
||||
|
||||
### Windows
|
||||
|
||||
Download the latest Windows executable from the [releases page](https://git.caileb.com/Caileb/rs-random/releases).
|
||||
|
||||
### From Source
|
||||
|
||||
```bash
|
||||
|
|
@ -30,14 +34,14 @@ cargo build --release
|
|||
```bash
|
||||
rs-random [LENGTH]
|
||||
rs-random -l <LENGTH> [-s <SETS>] [-c <COUNT>]
|
||||
rs-random -h | --help
|
||||
rs-random -h
|
||||
```
|
||||
|
||||
- `LENGTH` <number>: Length of each string (default: `16`)
|
||||
- `-l, --length <LENGTH>`: Specify the string length
|
||||
- `-s, --sets <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`)
|
||||
- `-h, --help`: Show help information
|
||||
- `-l <LENGTH>`: Specify the string length
|
||||
- `-s <SETS>`: Comma-separated list of character sets to include (default: `lowercase,uppercase,numbers,special-safe`)
|
||||
- `-c <COUNT>`: Number of strings to generate (default: `1`)
|
||||
- `-h`: Show help information
|
||||
|
||||
### Available Character Sets
|
||||
|
||||
|
|
|
|||
10
src/main.rs
10
src/main.rs
|
|
@ -21,7 +21,7 @@ fn print_help() {
|
|||
println!("Usage:");
|
||||
println!(" rs-random [LENGTH] (uses safe defaults)");
|
||||
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):");
|
||||
for &(name, _, desc) in &CHARACTER_SETS {
|
||||
println!(" {:<15} - {}", name, desc);
|
||||
|
|
@ -68,7 +68,7 @@ fn generate_random_string(chars: &[char], length: usize) -> String {
|
|||
fn main() {
|
||||
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();
|
||||
return;
|
||||
}
|
||||
|
|
@ -80,7 +80,7 @@ fn main() {
|
|||
let mut i = 1;
|
||||
while i < args.len() {
|
||||
match args[i].as_str() {
|
||||
"-l" | "--length" => {
|
||||
"-l" => {
|
||||
if i + 1 < args.len() {
|
||||
if let Ok(n) = args[i + 1].parse::<usize>() {
|
||||
length = n;
|
||||
|
|
@ -94,7 +94,7 @@ fn main() {
|
|||
process::exit(1);
|
||||
}
|
||||
}
|
||||
"-s" | "--sets" => {
|
||||
"-s" => {
|
||||
if i + 1 < args.len() {
|
||||
sets = &args[i + 1];
|
||||
i += 2;
|
||||
|
|
@ -103,7 +103,7 @@ fn main() {
|
|||
process::exit(1);
|
||||
}
|
||||
}
|
||||
"-c" | "--count" => {
|
||||
"-c" => {
|
||||
if i + 1 < args.len() {
|
||||
if let Ok(n) = args[i + 1].parse::<usize>() {
|
||||
count = n;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue