Skip to main content

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.