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.

Kurulum

cargo add mask-pii

Kullanım

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.