mask-pii for Haskell

Haskell implementation of mask-pii for masking email and phone PII in logs and data pipelines.

Email masking

Masks local parts while preserving domain visibility.

Phone masking

Masks sensitive digits while keeping format and suffix visibility.

Builder-style API

Enable email/phone masking and mask character explicitly before processing.

Install and start

Use the tagged source checkout while the Hackage package is planned, load the Haskell API, and run the minimal example below. It enables both masking rules explicitly and records the expected output.

Installation

git clone --branch v0.2.0 --depth 1 https://github.com/finitefield-org/mask-pii.git

Usage

Main.hs
import MaskPII (Masker, newMasker, maskEmails, maskPhones, withMaskChar, process)

main :: IO ()
main = do
  let masker = withMaskChar '#'
             $ maskPhones
             $ maskEmails newMasker
  putStrLn $ process masker "Contact: alice@example.com or 090-1234-5678."
  -- => "Contact: a####@example.com or ###-####-5678."
Note

Please check the README for exact package ecosystem details and API examples for this language.