PII masking for logs and pipelines in Rust.
Mask email addresses and global phone numbers safely, quickly, and with minimal dependencies. Designed for logging and data processing workflows.
Email Masking
Preserves the domain and the first local character: alice@example.com -> a****@example.com.
Global Phone Formats
Keeps formatting and the last 4 digits: +1 (800) 123-4567 -> +1 (***) ***-4567.
Custom & Lightweight
Change the mask character and keep dependencies minimal (regex only).
Installation & Basic Usage
Use cargo add mask-pii (or add mask-pii = "0.2.0" to Cargo.toml) and enable masking with the builder pattern.
nasb
cargo add mask-pii
istemal
main.rs
use mask_pii::Masker;
fn main() {
// Configure the masker
let masker = Masker::new()
.mask_emails()
.mask_phones()
.with_mask_char('#');
let input = "Contact: alice@example.com or 090-1234-5678.";
let output = masker.process(input);
println!("{}", output);
// Output: "Contact: a####@example.com or 090-####-5678."
}
Important Note
By default, Masker::new() performs no masking. Enable email/phone filters explicitly before processing text.
pichla
zaban indexagla
GitHub