Getting Started
Install
Add the crate to your Cargo.toml:
[dependencies]
pii = "0.1"
If you want the optional Candle-based NER support:
[dependencies]
pii = { version = "0.1", features = ["candle-ner"] }
Detect and redact
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;
let analyzer = Analyzer::new(
Box::new(SimpleNlpEngine::default()),
default_recognizers(),
Vec::new(),
PolicyConfig::default(),
);
let text = "Contact jane@example.com about ticket #EMP-1024.";
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() });
config.per_entity = per_entity;
let redacted = Anonymizer::anonymize(text, &result.entities, &config).unwrap();
println!("{}", redacted.text);
Next steps
- Customize recognizers with your own regex or dictionary entries.
- Add policy rules for each entity type.
- Use the audit log to report what changed.