passcheck is a flexible and lightweight password validation crate for Rust.
It allows you to define custom rules for checking password strength and structure β use only what you need!
- β Rule-based validation system
- β Add only the checks you want: length, uppercase/lowercase, number, special char, etc.
- β
Supports custom error messages per rule via
Option<&str> - β Lightweight and dependency-free
- β Easy to use and extend with a fluent API
Add this to your Cargo.toml:
[dependencies]
passcheck = "0.2.0"use passcheck::PasswordChecker;
fn main() {
let checker = PasswordChecker::new()
.min_length(8, None) // Use default error message with None OR use Some(str) for use custom message
.require_upper_lower(None)
.require_number(Some("Password must include at least one digit")) // Custom message
.require_special_char(None);
let password = "Ali@123";
match checker.validate(password) {
Ok(_) => println!("β
Strong password!"),
Err(errors) => {
println!("β Invalid password:");
for err in errors {
println!(" - {}", err);
}
}
}
}min_length(n, Option<&str>) β Requires password to be at least n characters
require_upper_lower(Option<&str>) β Requires at least one uppercase and one lowercase letter
require_number(Option<&str>) β Requires at least one digit
require_special_char(Option<&str>) β Requires at least one special character
π» Author Made with β€ + β by Ali