pii 0.1.0

PII detection and anonymization with deterministic, capability-aware NLP pipelines.
Documentation
use pii::anonymize::{AnonymizeConfig, Anonymizer, Operator};
use pii::nlp::SimpleNlpEngine;
use pii::presets::default_recognizers;
use pii::{Analyzer, PolicyConfig};
use pii::types::Language;
use std::collections::HashMap;

fn main() {
    let analyzer = Analyzer::new(
        Box::new(SimpleNlpEngine::default()),
        default_recognizers(),
        Vec::new(),
        PolicyConfig::default(),
    );

    let text = "Contact Jane at jane@example.com or +1 415-555-1212.";
    let result = analyzer.analyze(text, &Language::from("en")).unwrap();

    let mut config = AnonymizeConfig::default();
    let mut per_entity = HashMap::new();
    per_entity.insert("Email".to_string(), Operator::Replace { with: "<EMAIL>".into() });
    per_entity.insert("Phone".to_string(), Operator::Mask { ch: '*', from_end: 4 });
    config.per_entity = per_entity;

    let redacted = Anonymizer::anonymize(text, &result.entities, &config).unwrap();
    println!("{}", redacted.text);
}