Skip to content

feat: consistent redaction for repeated PII values - #106

Merged
leoneperdigao merged 1 commit into
mainfrom
feat/88-consistent-redaction
Mar 20, 2026
Merged

feat: consistent redaction for repeated PII values#106
leoneperdigao merged 1 commit into
mainfrom
feat/88-consistent-redaction

Conversation

@leoneperdigao

Copy link
Copy Markdown
Member

Summary

  • Add Consistent replacer wrapper (adapter/replacer/consistent.go) that ensures the same PII value always maps to the same replacement string within a Replace call
  • For the Redact replacer, produces numbered placeholders per type (e.g. [EMAIL_1], [EMAIL_2]); for other replacers (Hash, Mask, Custom), caches the first generated replacement and reuses it
  • Expose WithConsistentRedaction() option in the public API (wuming.go)
  • Add 9 tests covering same-value consistency, different-value numbering, mixed types, Hash/Mask wrapping, Reset behaviour, and edge cases

Test plan

  • All 9 new tests in adapter/replacer/consistent_test.go pass
  • All existing replacer tests still pass
  • Engine tests pass
  • Project builds cleanly (go build ./...)
  • CI passes

Closes #88

@github-actions

Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

Summary

Benchmark Status
🔍 Detect small (100B) ⚪ baseline
🔍 Detect medium (1KB) ⚪ baseline
🔍 Detect large (10KB) ⚪ baseline
🌍 All locales (1KB) ⚪ baseline
🏷️ Single locale (1KB) ⚪ baseline
✂️ Redact small (100B) ⚪ baseline
✂️ Redact large (10KB) ⚪ baseline
⚡ Throughput (all locales) ⚪ baseline
🧊 Cold start ⚪ baseline
🔥 Warm detection ⚪ baseline
⚡ Per-locale throughput (14 locales)
Locale Status
au ⚪ baseline
br ⚪ baseline
ca ⚪ baseline
cn ⚪ baseline
common ⚪ baseline
de ⚪ baseline
eu ⚪ baseline
fr ⚪ baseline
gb ⚪ baseline
in ⚪ baseline
jp ⚪ baseline
kr ⚪ baseline
nl ⚪ baseline
us ⚪ baseline
📊 Per-detector breakdown (70 detectors)
Detector Status
ca/sin ⚪ baseline
ca/phone ⚪ baseline
ca/postal_code ⚪ baseline
ca/passport ⚪ baseline
de/steuer_id ⚪ baseline
de/sozialversicherung ⚪ baseline
de/phone ⚪ baseline
de/plz ⚪ baseline
de/id_card ⚪ baseline
fr/nir ⚪ baseline
fr/nif ⚪ baseline
fr/phone ⚪ baseline
fr/postal ⚪ baseline
fr/id_card ⚪ baseline
gb/nin ⚪ baseline
gb/nhs ⚪ baseline
gb/utr ⚪ baseline
gb/phone ⚪ baseline
gb/postcode ⚪ baseline
nl/bsn ⚪ baseline
nl/phone ⚪ baseline
nl/postal ⚪ baseline
nl/kvk ⚪ baseline
nl/id_document ⚪ baseline
us/ssn ⚪ baseline
us/itin ⚪ baseline
us/ein ⚪ baseline
us/phone ⚪ baseline
us/zip ⚪ baseline
us/passport ⚪ baseline
us/medicare ⚪ baseline
au/tfn ⚪ baseline
au/medicare ⚪ baseline
au/abn ⚪ baseline
au/phone ⚪ baseline
au/postcode ⚪ baseline
br/cpf ⚪ baseline
br/cnpj ⚪ baseline
br/phone ⚪ baseline
br/cep ⚪ baseline
br/pis ⚪ baseline
br/cnh ⚪ baseline
cn/resident_id ⚪ baseline
cn/phone ⚪ baseline
cn/postal ⚪ baseline
cn/passport ⚪ baseline
cn/uscc ⚪ baseline
eu/passport_mrz ⚪ baseline
eu/vat ⚪ baseline
common/email ⚪ baseline
common/creditcard ⚪ baseline
common/ip ⚪ baseline
common/url ⚪ baseline
common/iban ⚪ baseline
common/mac ⚪ baseline
in/aadhaar ⚪ baseline
in/pan ⚪ baseline
in/phone ⚪ baseline
in/pincode ⚪ baseline
in/passport ⚪ baseline
in/gstin ⚪ baseline
jp/my_number ⚪ baseline
jp/corporate_number ⚪ baseline
jp/phone ⚪ baseline
jp/postal ⚪ baseline
jp/passport ⚪ baseline
kr/rrn ⚪ baseline
kr/phone ⚪ baseline
kr/postal ⚪ baseline
kr/passport ⚪ baseline
🔧 Other benchmarks (11)
Benchmark Status
LatencyBySize/100B ⚪ baseline
LatencyBySize/1KB ⚪ baseline
LatencyBySize/10KB ⚪ baseline
LatencyBySize/100KB ⚪ baseline
LatencyBySize/1MB ⚪ baseline
Concurrency/goroutines-1 ⚪ baseline
Concurrency/goroutines-2 ⚪ baseline
Concurrency/goroutines-4 ⚪ baseline
Concurrency/goroutines-8 ⚪ baseline
Concurrency/goroutines-16 ⚪ baseline
geomean ⚪ baseline
📋 Raw benchstat output (root)
goos: linux
goarch: amd64
pkg: github.com/taoq-ai/wuming
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ bench-base-root/results.txt │
                                    │           sec/op            │
DetectSmallText-4                                    210.5µ ± ∞ ¹
DetectMediumText-4                                   1.345m ± ∞ ¹
DetectLargeText-4                                    14.93m ± ∞ ¹
DetectAllLocales-4                                   1.344m ± ∞ ¹
DetectSingleLocale-4                                 355.9µ ± ∞ ¹
RedactSmallText-4                                    209.6µ ± ∞ ¹
RedactLargeText-4                                    14.66m ± ∞ ¹
PerDetector/ca/sin-4                                 26.48µ ± ∞ ¹
PerDetector/ca/phone-4                               65.46µ ± ∞ ¹
PerDetector/ca/postal_code-4                         24.16µ ± ∞ ¹
PerDetector/ca/passport-4                            22.81µ ± ∞ ¹
PerDetector/de/steuer_id-4                           23.02µ ± ∞ ¹
PerDetector/de/sozialversicherung-4                  23.36µ ± ∞ ¹
PerDetector/de/phone-4                               51.45µ ± ∞ ¹
PerDetector/de/plz-4                                 73.38µ ± ∞ ¹
PerDetector/de/id_card-4                             23.96µ ± ∞ ¹
PerDetector/fr/nir-4                                 26.93µ ± ∞ ¹
PerDetector/fr/nif-4                                 23.49µ ± ∞ ¹
PerDetector/fr/phone-4                               27.49µ ± ∞ ¹
PerDetector/fr/postal-4                              26.10µ ± ∞ ¹
PerDetector/fr/id_card-4                             46.65µ ± ∞ ¹
PerDetector/gb/nin-4                                 33.35µ ± ∞ ¹
PerDetector/gb/nhs-4                                 26.49µ ± ∞ ¹
PerDetector/gb/utr-4                                 83.81µ ± ∞ ¹
PerDetector/gb/phone-4                               27.17µ ± ∞ ¹
PerDetector/gb/postcode-4                            27.29µ ± ∞ ¹
PerDetector/nl/bsn-4                                 23.37µ ± ∞ ¹
PerDetector/nl/phone-4                               66.27µ ± ∞ ¹
PerDetector/nl/postal-4                              23.20µ ± ∞ ¹
PerDetector/nl/kvk-4                                 22.95µ ± ∞ ¹
PerDetector/nl/id_document-4                         45.92µ ± ∞ ¹
PerDetector/us/ssn-4                                 26.14µ ± ∞ ¹
PerDetector/us/itin-4                                24.52µ ± ∞ ¹
PerDetector/us/ein-4                                 62.64µ ± ∞ ¹
PerDetector/us/phone-4                               56.72µ ± ∞ ¹
PerDetector/us/zip-4                                 23.10µ ± ∞ ¹
PerDetector/us/passport-4                            29.13µ ± ∞ ¹
PerDetector/us/medicare-4                            22.85µ ± ∞ ¹
PerDetector/au/tfn-4                                 29.24µ ± ∞ ¹
PerDetector/au/medicare-4                            30.44µ ± ∞ ¹
PerDetector/au/abn-4                                 30.41µ ± ∞ ¹
PerDetector/au/phone-4                               51.56µ ± ∞ ¹
PerDetector/au/postcode-4                            23.98µ ± ∞ ¹
PerDetector/br/cpf-4                                 49.68µ ± ∞ ¹
PerDetector/br/cnpj-4                                43.56µ ± ∞ ¹
PerDetector/br/phone-4                               88.92µ ± ∞ ¹
PerDetector/br/cep-4                                 43.73µ ± ∞ ¹
PerDetector/br/pis-4                                 43.74µ ± ∞ ¹
PerDetector/br/cnh-4                                 23.02µ ± ∞ ¹
PerDetector/cn/resident_id-4                         22.96µ ± ∞ ¹
PerDetector/cn/phone-4                               26.77µ ± ∞ ¹
PerDetector/cn/postal-4                              22.99µ ± ∞ ¹
PerDetector/cn/passport-4                            30.93µ ± ∞ ¹
PerDetector/cn/uscc-4                                24.68µ ± ∞ ¹
PerDetector/eu/passport_mrz-4                        354.0n ± ∞ ¹
PerDetector/eu/vat-4                                 105.5µ ± ∞ ¹
PerDetector/common/email-4                           32.89µ ± ∞ ¹
PerDetector/common/creditcard-4                      25.37µ ± ∞ ¹
PerDetector/common/ip-4                              134.7µ ± ∞ ¹
PerDetector/common/url-4                             1.008µ ± ∞ ¹
PerDetector/common/iban-4                            24.20µ ± ∞ ¹
PerDetector/common/mac-4                             46.58µ ± ∞ ¹
PerDetector/in/aadhaar-4                             23.24µ ± ∞ ¹
PerDetector/in/pan-4                                 22.74µ ± ∞ ¹
PerDetector/in/phone-4                               43.68µ ± ∞ ¹
PerDetector/in/pincode-4                             23.04µ ± ∞ ¹
PerDetector/in/passport-4                            22.74µ ± ∞ ¹
PerDetector/in/gstin-4                               22.83µ ± ∞ ¹
PerDetector/jp/my_number-4                           22.99µ ± ∞ ¹
PerDetector/jp/corporate_number-4                    23.02µ ± ∞ ¹
PerDetector/jp/phone-4                               27.50µ ± ∞ ¹
PerDetector/jp/postal-4                              35.93µ ± ∞ ¹
PerDetector/jp/passport-4                            22.84µ ± ∞ ¹
PerDetector/kr/rrn-4                                 26.53µ ± ∞ ¹
PerDetector/kr/phone-4                               27.49µ ± ∞ ¹
PerDetector/kr/postal-4                              23.28µ ± ∞ ¹
PerDetector/kr/passport-4                            22.62µ ± ∞ ¹
ThroughputSingleLocale/au-4                          3.188m ± ∞ ¹
ThroughputSingleLocale/br-4                          3.708m ± ∞ ¹
ThroughputSingleLocale/ca-4                          2.942m ± ∞ ¹
ThroughputSingleLocale/cn-4                          2.855m ± ∞ ¹
ThroughputSingleLocale/common-4                      2.226m ± ∞ ¹
ThroughputSingleLocale/de-4                          3.289m ± ∞ ¹
ThroughputSingleLocale/eu-4                          2.645m ± ∞ ¹
ThroughputSingleLocale/fr-4                          2.984m ± ∞ ¹
ThroughputSingleLocale/gb-4                          3.306m ± ∞ ¹
ThroughputSingleLocale/in-4                          2.841m ± ∞ ¹
ThroughputSingleLocale/jp-4                          2.954m ± ∞ ¹
ThroughputSingleLocale/kr-4                          2.807m ± ∞ ¹
ThroughputSingleLocale/nl-4                          3.083m ± ∞ ¹
ThroughputSingleLocale/us-4                          3.548m ± ∞ ¹
ThroughputAllLocales-4                               14.55m ± ∞ ¹
LatencyBySize/100B-4                                 201.8µ ± ∞ ¹
LatencyBySize/1KB-4                                  1.224m ± ∞ ¹
LatencyBySize/10KB-4                                 12.88m ± ∞ ¹
LatencyBySize/100KB-4                                138.3m ± ∞ ¹
LatencyBySize/1MB-4                                   1.424 ± ∞ ¹
Concurrency/goroutines-1-4                           1.275m ± ∞ ¹
Concurrency/goroutines-2-4                           1.277m ± ∞ ¹
Concurrency/goroutines-4-4                           1.282m ± ∞ ¹
Concurrency/goroutines-8-4                           1.276m ± ∞ ¹
Concurrency/goroutines-16-4                          1.277m ± ∞ ¹
ColdStart-4                                          1.370m ± ∞ ¹
WarmDetection-4                                      1.351m ± ∞ ¹
geomean                                              128.6µ
¹ need >= 6 samples for confidence interval at level 0.95

                                    │ bench-base-root/results.txt │
                                    │            B/op             │
DetectSmallText-4                                   15.42Ki ± ∞ ¹
DetectMediumText-4                                  41.62Ki ± ∞ ¹
DetectLargeText-4                                   799.4Ki ± ∞ ¹
DetectAllLocales-4                                  41.01Ki ± ∞ ¹
DetectSingleLocale-4                                21.46Ki ± ∞ ¹
RedactSmallText-4                                   15.53Ki ± ∞ ¹
RedactLargeText-4                                   826.0Ki ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                304.0 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                529.0 ± ∞ ¹
PerDetector/de/plz-4                                  336.0 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                337.0 ± ∞ ¹
PerDetector/fr/postal-4                               352.0 ± ∞ ¹
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹
PerDetector/gb/nin-4                                  1.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  2.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                2.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          1.000 ± ∞ ¹
PerDetector/us/ssn-4                                  449.0 ± ∞ ¹
PerDetector/us/itin-4                                 304.0 ± ∞ ¹
PerDetector/us/ein-4                                  1.000 ± ∞ ¹
PerDetector/us/phone-4                                433.0 ± ∞ ¹
PerDetector/us/zip-4                                  336.0 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/tfn-4                                  336.0 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                337.0 ± ∞ ¹
PerDetector/au/postcode-4                           1.581Ki ± ∞ ¹
PerDetector/br/cpf-4                                  1.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹
PerDetector/br/phone-4                                338.0 ± ∞ ¹
PerDetector/br/cep-4                                  1.000 ± ∞ ¹
PerDetector/br/pis-4                                  1.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  2.000 ± ∞ ¹
PerDetector/common/email-4                            337.0 ± ∞ ¹
PerDetector/common/creditcard-4                       362.0 ± ∞ ¹
PerDetector/common/ip-4                               655.0 ± ∞ ¹
PerDetector/common/url-4                              337.0 ± ∞ ¹
PerDetector/common/iban-4                             537.0 ± ∞ ¹
PerDetector/common/mac-4                              337.0 ± ∞ ¹
PerDetector/in/aadhaar-4                              522.0 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                1.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                529.0 ± ∞ ¹
PerDetector/jp/postal-4                               337.0 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                336.0 ± ∞ ¹
PerDetector/kr/postal-4                               336.0 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                         695.7Ki ± ∞ ¹
ThroughputSingleLocale/br-4                         474.5Ki ± ∞ ¹
ThroughputSingleLocale/ca-4                         467.8Ki ± ∞ ¹
ThroughputSingleLocale/cn-4                         467.3Ki ± ∞ ¹
ThroughputSingleLocale/common-4                     471.3Ki ± ∞ ¹
ThroughputSingleLocale/de-4                         617.9Ki ± ∞ ¹
ThroughputSingleLocale/eu-4                         467.8Ki ± ∞ ¹
ThroughputSingleLocale/fr-4                         543.3Ki ± ∞ ¹
ThroughputSingleLocale/gb-4                         465.8Ki ± ∞ ¹
ThroughputSingleLocale/in-4                         481.2Ki ± ∞ ¹
ThroughputSingleLocale/jp-4                         665.6Ki ± ∞ ¹
ThroughputSingleLocale/kr-4                         545.3Ki ± ∞ ¹
ThroughputSingleLocale/nl-4                         470.5Ki ± ∞ ¹
ThroughputSingleLocale/us-4                         654.0Ki ± ∞ ¹
ThroughputAllLocales-4                              838.2Ki ± ∞ ¹
LatencyBySize/100B-4                                13.02Ki ± ∞ ¹
LatencyBySize/1KB-4                                 23.76Ki ± ∞ ¹
LatencyBySize/10KB-4                                99.76Ki ± ∞ ¹
LatencyBySize/100KB-4                               1.341Mi ± ∞ ¹
LatencyBySize/1MB-4                                 83.13Mi ± ∞ ¹
Concurrency/goroutines-1-4                          41.93Ki ± ∞ ¹
Concurrency/goroutines-2-4                          45.35Ki ± ∞ ¹
Concurrency/goroutines-4-4                          47.33Ki ± ∞ ¹
Concurrency/goroutines-8-4                          44.71Ki ± ∞ ¹
Concurrency/goroutines-16-4                         44.01Ki ± ∞ ¹
ColdStart-4                                         51.55Ki ± ∞ ¹
WarmDetection-4                                     42.47Ki ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                    │ bench-base-root/results.txt │
                                    │          allocs/op          │
DetectSmallText-4                                     178.0 ± ∞ ¹
DetectMediumText-4                                    303.0 ± ∞ ¹
DetectLargeText-4                                    1.280k ± ∞ ¹
DetectAllLocales-4                                    302.0 ± ∞ ¹
DetectSingleLocale-4                                  192.0 ± ∞ ¹
RedactSmallText-4                                     178.0 ± ∞ ¹
RedactLargeText-4                                    1.303k ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                3.000 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                5.000 ± ∞ ¹
PerDetector/de/plz-4                                  3.000 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                3.000 ± ∞ ¹
PerDetector/fr/postal-4                               3.000 ± ∞ ¹
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  0.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                0.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          0.000 ± ∞ ¹
PerDetector/us/ssn-4                                  4.000 ± ∞ ¹
PerDetector/us/itin-4                                 2.000 ± ∞ ¹
PerDetector/us/ein-4                                  0.000 ± ∞ ¹
PerDetector/us/phone-4                                4.000 ± ∞ ¹
PerDetector/us/zip-4                                  3.000 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/tfn-4                                  5.000 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                3.000 ± ∞ ¹
PerDetector/au/postcode-4                             12.00 ± ∞ ¹
PerDetector/br/cpf-4                                  0.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹
PerDetector/br/phone-4                                3.000 ± ∞ ¹
PerDetector/br/cep-4                                  0.000 ± ∞ ¹
PerDetector/br/pis-4                                  0.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹
PerDetector/common/email-4                            3.000 ± ∞ ¹
PerDetector/common/creditcard-4                       5.000 ± ∞ ¹
PerDetector/common/ip-4                               7.000 ± ∞ ¹
PerDetector/common/url-4                              3.000 ± ∞ ¹
PerDetector/common/iban-4                             11.00 ± ∞ ¹
PerDetector/common/mac-4                              3.000 ± ∞ ¹
PerDetector/in/aadhaar-4                              8.000 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                0.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                5.000 ± ∞ ¹
PerDetector/jp/postal-4                               3.000 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                3.000 ± ∞ ¹
PerDetector/kr/postal-4                               3.000 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                           869.0 ± ∞ ¹
ThroughputSingleLocale/br-4                           637.0 ± ∞ ¹
ThroughputSingleLocale/ca-4                           632.0 ± ∞ ¹
ThroughputSingleLocale/cn-4                           612.0 ± ∞ ¹
ThroughputSingleLocale/common-4                       600.0 ± ∞ ¹
ThroughputSingleLocale/de-4                           751.0 ± ∞ ¹
ThroughputSingleLocale/eu-4                           593.0 ± ∞ ¹
ThroughputSingleLocale/fr-4                           685.0 ± ∞ ¹
ThroughputSingleLocale/gb-4                           617.0 ± ∞ ¹
ThroughputSingleLocale/in-4                           695.0 ± ∞ ¹
ThroughputSingleLocale/jp-4                           779.0 ± ∞ ¹
ThroughputSingleLocale/kr-4                           681.0 ± ∞ ¹
ThroughputSingleLocale/nl-4                           611.0 ± ∞ ¹
ThroughputSingleLocale/us-4                           783.0 ± ∞ ¹
ThroughputAllLocales-4                               1.313k ± ∞ ¹
LatencyBySize/100B-4                                  155.0 ± ∞ ¹
LatencyBySize/1KB-4                                   202.0 ± ∞ ¹
LatencyBySize/10KB-4                                  257.0 ± ∞ ¹
LatencyBySize/100KB-4                                 538.0 ± ∞ ¹
LatencyBySize/1MB-4                                  2.658k ± ∞ ¹
Concurrency/goroutines-1-4                            304.0 ± ∞ ¹
Concurrency/goroutines-2-4                            305.0 ± ∞ ¹
Concurrency/goroutines-4-4                            308.0 ± ∞ ¹
Concurrency/goroutines-8-4                            303.0 ± ∞ ¹
Concurrency/goroutines-16-4                           304.0 ± ∞ ¹
ColdStart-4                                           337.0 ± ∞ ¹
WarmDetection-4                                       303.0 ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                │ bench-base-root/results.txt │
                                │             B/s             │
ThroughputSingleLocale/au-4                     3.109Mi ± ∞ ¹
ThroughputSingleLocale/br-4                     2.670Mi ± ∞ ¹
ThroughputSingleLocale/ca-4                     3.366Mi ± ∞ ¹
ThroughputSingleLocale/cn-4                     3.471Mi ± ∞ ¹
ThroughputSingleLocale/common-4                 4.454Mi ± ∞ ¹
ThroughputSingleLocale/de-4                     3.014Mi ± ∞ ¹
ThroughputSingleLocale/eu-4                     3.748Mi ± ∞ ¹
ThroughputSingleLocale/fr-4                     3.319Mi ± ∞ ¹
ThroughputSingleLocale/gb-4                     2.995Mi ± ∞ ¹
ThroughputSingleLocale/in-4                     3.490Mi ± ∞ ¹
ThroughputSingleLocale/jp-4                     3.357Mi ± ∞ ¹
ThroughputSingleLocale/kr-4                     3.529Mi ± ∞ ¹
ThroughputSingleLocale/nl-4                     3.214Mi ± ∞ ¹
ThroughputSingleLocale/us-4                     2.794Mi ± ∞ ¹
ThroughputAllLocales-4                          693.4Ki ± ∞ ¹
LatencyBySize/100B-4                            488.3Ki ± ∞ ¹
LatencyBySize/1KB-4                             820.3Ki ± ∞ ¹
LatencyBySize/10KB-4                            771.5Ki ± ∞ ¹
LatencyBySize/100KB-4                           722.7Ki ± ∞ ¹
LatencyBySize/1MB-4                             722.7Ki ± ∞ ¹
geomean                                         2.052Mi
¹ need >= 6 samples for confidence interval at level 0.95

cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                    │ bench-head-root/results.txt │
                                    │           sec/op            │
DetectSmallText-4                                    231.5µ ± ∞ ¹
DetectMediumText-4                                   1.490m ± ∞ ¹
DetectLargeText-4                                    15.78m ± ∞ ¹
DetectAllLocales-4                                   1.486m ± ∞ ¹
DetectSingleLocale-4                                 372.5µ ± ∞ ¹
RedactSmallText-4                                    232.2µ ± ∞ ¹
RedactLargeText-4                                    15.77m ± ∞ ¹
PerDetector/ca/sin-4                                 24.39µ ± ∞ ¹
PerDetector/ca/phone-4                               57.97µ ± ∞ ¹
PerDetector/ca/postal_code-4                         23.15µ ± ∞ ¹
PerDetector/ca/passport-4                            21.34µ ± ∞ ¹
PerDetector/de/steuer_id-4                           21.62µ ± ∞ ¹
PerDetector/de/sozialversicherung-4                  21.93µ ± ∞ ¹
PerDetector/de/phone-4                               45.18µ ± ∞ ¹
PerDetector/de/plz-4                                 66.42µ ± ∞ ¹
PerDetector/de/id_card-4                             22.64µ ± ∞ ¹
PerDetector/fr/nir-4                                 24.74µ ± ∞ ¹
PerDetector/fr/nif-4                                 21.93µ ± ∞ ¹
PerDetector/fr/phone-4                               24.89µ ± ∞ ¹
PerDetector/fr/postal-4                              24.30µ ± ∞ ¹
PerDetector/fr/id_card-4                             44.32µ ± ∞ ¹
PerDetector/gb/nin-4                                 30.74µ ± ∞ ¹
PerDetector/gb/nhs-4                                 24.36µ ± ∞ ¹
PerDetector/gb/utr-4                                 72.58µ ± ∞ ¹
PerDetector/gb/phone-4                               24.23µ ± ∞ ¹
PerDetector/gb/postcode-4                            25.45µ ± ∞ ¹
PerDetector/nl/bsn-4                                 22.10µ ± ∞ ¹
PerDetector/nl/phone-4                               58.53µ ± ∞ ¹
PerDetector/nl/postal-4                              21.61µ ± ∞ ¹
PerDetector/nl/kvk-4                                 21.67µ ± ∞ ¹
PerDetector/nl/id_document-4                         43.10µ ± ∞ ¹
PerDetector/us/ssn-4                                 24.70µ ± ∞ ¹
PerDetector/us/itin-4                                22.96µ ± ∞ ¹
PerDetector/us/ein-4                                 54.48µ ± ∞ ¹
PerDetector/us/phone-4                               50.73µ ± ∞ ¹
PerDetector/us/zip-4                                 21.90µ ± ∞ ¹
PerDetector/us/passport-4                            26.28µ ± ∞ ¹
PerDetector/us/medicare-4                            21.45µ ± ∞ ¹
PerDetector/au/tfn-4                                 27.00µ ± ∞ ¹
PerDetector/au/medicare-4                            27.74µ ± ∞ ¹
PerDetector/au/abn-4                                 27.77µ ± ∞ ¹
PerDetector/au/phone-4                               45.88µ ± ∞ ¹
PerDetector/au/postcode-4                            23.10µ ± ∞ ¹
PerDetector/br/cpf-4                                 43.86µ ± ∞ ¹
PerDetector/br/cnpj-4                                39.79µ ± ∞ ¹
PerDetector/br/phone-4                               80.53µ ± ∞ ¹
PerDetector/br/cep-4                                 39.65µ ± ∞ ¹
PerDetector/br/pis-4                                 39.70µ ± ∞ ¹
PerDetector/br/cnh-4                                 21.63µ ± ∞ ¹
PerDetector/cn/resident_id-4                         21.72µ ± ∞ ¹
PerDetector/cn/phone-4                               24.05µ ± ∞ ¹
PerDetector/cn/postal-4                              21.39µ ± ∞ ¹
PerDetector/cn/passport-4                            29.10µ ± ∞ ¹
PerDetector/cn/uscc-4                                23.40µ ± ∞ ¹
PerDetector/eu/passport_mrz-4                        282.8n ± ∞ ¹
PerDetector/eu/vat-4                                 94.79µ ± ∞ ¹
PerDetector/common/email-4                           29.66µ ± ∞ ¹
PerDetector/common/creditcard-4                      23.73µ ± ∞ ¹
PerDetector/common/ip-4                              128.4µ ± ∞ ¹
PerDetector/common/url-4                             1.011µ ± ∞ ¹
PerDetector/common/iban-4                            22.62µ ± ∞ ¹
PerDetector/common/mac-4                             41.84µ ± ∞ ¹
PerDetector/in/aadhaar-4                             21.88µ ± ∞ ¹
PerDetector/in/pan-4                                 21.37µ ± ∞ ¹
PerDetector/in/phone-4                               39.47µ ± ∞ ¹
PerDetector/in/pincode-4                             21.46µ ± ∞ ¹
PerDetector/in/passport-4                            21.29µ ± ∞ ¹
PerDetector/in/gstin-4                               21.55µ ± ∞ ¹
PerDetector/jp/my_number-4                           21.71µ ± ∞ ¹
PerDetector/jp/corporate_number-4                    21.66µ ± ∞ ¹
PerDetector/jp/phone-4                               24.55µ ± ∞ ¹
PerDetector/jp/postal-4                              33.44µ ± ∞ ¹
PerDetector/jp/passport-4                            21.59µ ± ∞ ¹
PerDetector/kr/rrn-4                                 24.36µ ± ∞ ¹
PerDetector/kr/phone-4                               24.90µ ± ∞ ¹
PerDetector/kr/postal-4                              22.12µ ± ∞ ¹
PerDetector/kr/passport-4                            21.43µ ± ∞ ¹
ThroughputSingleLocale/au-4                          3.259m ± ∞ ¹
ThroughputSingleLocale/br-4                          3.897m ± ∞ ¹
ThroughputSingleLocale/ca-4                          3.006m ± ∞ ¹
ThroughputSingleLocale/cn-4                          2.891m ± ∞ ¹
ThroughputSingleLocale/common-4                      2.234m ± ∞ ¹
ThroughputSingleLocale/de-4                          3.364m ± ∞ ¹
ThroughputSingleLocale/eu-4                          2.734m ± ∞ ¹
ThroughputSingleLocale/fr-4                          3.116m ± ∞ ¹
ThroughputSingleLocale/gb-4                          3.524m ± ∞ ¹
ThroughputSingleLocale/in-4                          3.036m ± ∞ ¹
ThroughputSingleLocale/jp-4                          3.051m ± ∞ ¹
ThroughputSingleLocale/kr-4                          2.858m ± ∞ ¹
ThroughputSingleLocale/nl-4                          3.148m ± ∞ ¹
ThroughputSingleLocale/us-4                          3.741m ± ∞ ¹
ThroughputAllLocales-4                               15.66m ± ∞ ¹
LatencyBySize/100B-4                                 217.6µ ± ∞ ¹
LatencyBySize/1KB-4                                  1.362m ± ∞ ¹
LatencyBySize/10KB-4                                 13.91m ± ∞ ¹
LatencyBySize/100KB-4                                144.5m ± ∞ ¹
LatencyBySize/1MB-4                                   1.493 ± ∞ ¹
Concurrency/goroutines-1-4                           1.417m ± ∞ ¹
Concurrency/goroutines-2-4                           1.423m ± ∞ ¹
Concurrency/goroutines-4-4                           1.424m ± ∞ ¹
Concurrency/goroutines-8-4                           1.416m ± ∞ ¹
Concurrency/goroutines-16-4                          1.415m ± ∞ ¹
ColdStart-4                                          1.507m ± ∞ ¹
WarmDetection-4                                      1.496m ± ∞ ¹
geomean                                              124.3µ
¹ need >= 6 samples for confidence interval at level 0.95

                                    │ bench-head-root/results.txt │
                                    │            B/op             │
DetectSmallText-4                                   15.58Ki ± ∞ ¹
DetectMediumText-4                                  41.76Ki ± ∞ ¹
DetectLargeText-4                                   794.8Ki ± ∞ ¹
DetectAllLocales-4                                  43.33Ki ± ∞ ¹
DetectSingleLocale-4                                21.71Ki ± ∞ ¹
RedactSmallText-4                                   15.61Ki ± ∞ ¹
RedactLargeText-4                                   837.2Ki ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                304.0 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                529.0 ± ∞ ¹
PerDetector/de/plz-4                                  338.0 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                336.0 ± ∞ ¹
PerDetector/fr/postal-4                               352.0 ± ∞ ¹
PerDetector/fr/id_card-4                              1.000 ± ∞ ¹
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  2.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                1.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          1.000 ± ∞ ¹
PerDetector/us/ssn-4                                  448.0 ± ∞ ¹
PerDetector/us/itin-4                                 304.0 ± ∞ ¹
PerDetector/us/ein-4                                  1.000 ± ∞ ¹
PerDetector/us/phone-4                                433.0 ± ∞ ¹
PerDetector/us/zip-4                                  336.0 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/tfn-4                                  336.0 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                336.0 ± ∞ ¹
PerDetector/au/postcode-4                           1.583Ki ± ∞ ¹
PerDetector/br/cpf-4                                  1.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹
PerDetector/br/phone-4                                338.0 ± ∞ ¹
PerDetector/br/cep-4                                  1.000 ± ∞ ¹
PerDetector/br/pis-4                                  1.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  1.000 ± ∞ ¹
PerDetector/common/email-4                            336.0 ± ∞ ¹
PerDetector/common/creditcard-4                       360.0 ± ∞ ¹
PerDetector/common/ip-4                               653.0 ± ∞ ¹
PerDetector/common/url-4                              337.0 ± ∞ ¹
PerDetector/common/iban-4                             537.0 ± ∞ ¹
PerDetector/common/mac-4                              336.0 ± ∞ ¹
PerDetector/in/aadhaar-4                              522.0 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                1.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                530.0 ± ∞ ¹
PerDetector/jp/postal-4                               337.0 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                338.0 ± ∞ ¹
PerDetector/kr/postal-4                               337.0 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                         688.5Ki ± ∞ ¹
ThroughputSingleLocale/br-4                         471.6Ki ± ∞ ¹
ThroughputSingleLocale/ca-4                         472.6Ki ± ∞ ¹
ThroughputSingleLocale/cn-4                         469.7Ki ± ∞ ¹
ThroughputSingleLocale/common-4                     471.0Ki ± ∞ ¹
ThroughputSingleLocale/de-4                         607.2Ki ± ∞ ¹
ThroughputSingleLocale/eu-4                         459.6Ki ± ∞ ¹
ThroughputSingleLocale/fr-4                         542.0Ki ± ∞ ¹
ThroughputSingleLocale/gb-4                         468.1Ki ± ∞ ¹
ThroughputSingleLocale/in-4                         479.5Ki ± ∞ ¹
ThroughputSingleLocale/jp-4                         660.5Ki ± ∞ ¹
ThroughputSingleLocale/kr-4                         547.0Ki ± ∞ ¹
ThroughputSingleLocale/nl-4                         470.3Ki ± ∞ ¹
ThroughputSingleLocale/us-4                         648.9Ki ± ∞ ¹
ThroughputAllLocales-4                              836.7Ki ± ∞ ¹
LatencyBySize/100B-4                                13.03Ki ± ∞ ¹
LatencyBySize/1KB-4                                 24.61Ki ± ∞ ¹
LatencyBySize/10KB-4                                101.9Ki ± ∞ ¹
LatencyBySize/100KB-4                               1.344Mi ± ∞ ¹
LatencyBySize/1MB-4                                 83.28Mi ± ∞ ¹
Concurrency/goroutines-1-4                          41.28Ki ± ∞ ¹
Concurrency/goroutines-2-4                          42.16Ki ± ∞ ¹
Concurrency/goroutines-4-4                          48.46Ki ± ∞ ¹
Concurrency/goroutines-8-4                          43.99Ki ± ∞ ¹
Concurrency/goroutines-16-4                         46.92Ki ± ∞ ¹
ColdStart-4                                         49.82Ki ± ∞ ¹
WarmDetection-4                                     41.95Ki ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                    │ bench-head-root/results.txt │
                                    │          allocs/op          │
DetectSmallText-4                                     178.0 ± ∞ ¹
DetectMediumText-4                                    305.0 ± ∞ ¹
DetectLargeText-4                                    1.277k ± ∞ ¹
DetectAllLocales-4                                    305.0 ± ∞ ¹
DetectSingleLocale-4                                  193.0 ± ∞ ¹
RedactSmallText-4                                     178.0 ± ∞ ¹
RedactLargeText-4                                    1.312k ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                3.000 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                5.000 ± ∞ ¹
PerDetector/de/plz-4                                  3.000 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                3.000 ± ∞ ¹
PerDetector/fr/postal-4                               3.000 ± ∞ ¹
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  0.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                0.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          0.000 ± ∞ ¹
PerDetector/us/ssn-4                                  4.000 ± ∞ ¹
PerDetector/us/itin-4                                 2.000 ± ∞ ¹
PerDetector/us/ein-4                                  0.000 ± ∞ ¹
PerDetector/us/phone-4                                4.000 ± ∞ ¹
PerDetector/us/zip-4                                  3.000 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/tfn-4                                  5.000 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                3.000 ± ∞ ¹
PerDetector/au/postcode-4                             12.00 ± ∞ ¹
PerDetector/br/cpf-4                                  0.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹
PerDetector/br/phone-4                                3.000 ± ∞ ¹
PerDetector/br/cep-4                                  0.000 ± ∞ ¹
PerDetector/br/pis-4                                  0.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹
PerDetector/common/email-4                            3.000 ± ∞ ¹
PerDetector/common/creditcard-4                       5.000 ± ∞ ¹
PerDetector/common/ip-4                               7.000 ± ∞ ¹
PerDetector/common/url-4                              3.000 ± ∞ ¹
PerDetector/common/iban-4                             11.00 ± ∞ ¹
PerDetector/common/mac-4                              3.000 ± ∞ ¹
PerDetector/in/aadhaar-4                              8.000 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                0.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                5.000 ± ∞ ¹
PerDetector/jp/postal-4                               3.000 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                3.000 ± ∞ ¹
PerDetector/kr/postal-4                               3.000 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                           854.0 ± ∞ ¹
ThroughputSingleLocale/br-4                           630.0 ± ∞ ¹
ThroughputSingleLocale/ca-4                           636.0 ± ∞ ¹
ThroughputSingleLocale/cn-4                           615.0 ± ∞ ¹
ThroughputSingleLocale/common-4                       597.0 ± ∞ ¹
ThroughputSingleLocale/de-4                           742.0 ± ∞ ¹
ThroughputSingleLocale/eu-4                           573.0 ± ∞ ¹
ThroughputSingleLocale/fr-4                           687.0 ± ∞ ¹
ThroughputSingleLocale/gb-4                           615.0 ± ∞ ¹
ThroughputSingleLocale/in-4                           690.0 ± ∞ ¹
ThroughputSingleLocale/jp-4                           773.0 ± ∞ ¹
ThroughputSingleLocale/kr-4                           682.0 ± ∞ ¹
ThroughputSingleLocale/nl-4                           609.0 ± ∞ ¹
ThroughputSingleLocale/us-4                           777.0 ± ∞ ¹
ThroughputAllLocales-4                               1.299k ± ∞ ¹
LatencyBySize/100B-4                                  155.0 ± ∞ ¹
LatencyBySize/1KB-4                                   204.0 ± ∞ ¹
LatencyBySize/10KB-4                                  260.0 ± ∞ ¹
LatencyBySize/100KB-4                                 532.0 ± ∞ ¹
LatencyBySize/1MB-4                                  3.254k ± ∞ ¹
Concurrency/goroutines-1-4                            304.0 ± ∞ ¹
Concurrency/goroutines-2-4                            306.0 ± ∞ ¹
Concurrency/goroutines-4-4                            307.0 ± ∞ ¹
Concurrency/goroutines-8-4                            304.0 ± ∞ ¹
Concurrency/goroutines-16-4                           306.0 ± ∞ ¹
ColdStart-4                                           336.0 ± ∞ ¹
WarmDetection-4                                       306.0 ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                │ bench-head-root/results.txt │
                                │             B/s             │
ThroughputSingleLocale/au-4                     3.042Mi ± ∞ ¹
ThroughputSingleLocale/br-4                     2.546Mi ± ∞ ¹
ThroughputSingleLocale/ca-4                     3.300Mi ± ∞ ¹
ThroughputSingleLocale/cn-4                     3.424Mi ± ∞ ¹
ThroughputSingleLocale/common-4                 4.435Mi ± ∞ ¹
ThroughputSingleLocale/de-4                     2.947Mi ± ∞ ¹
ThroughputSingleLocale/eu-4                     3.624Mi ± ∞ ¹
ThroughputSingleLocale/fr-4                     3.176Mi ± ∞ ¹
ThroughputSingleLocale/gb-4                     2.813Mi ± ∞ ¹
ThroughputSingleLocale/in-4                     3.262Mi ± ∞ ¹
ThroughputSingleLocale/jp-4                     3.252Mi ± ∞ ¹
ThroughputSingleLocale/kr-4                     3.462Mi ± ∞ ¹
ThroughputSingleLocale/nl-4                     3.147Mi ± ∞ ¹
ThroughputSingleLocale/us-4                     2.651Mi ± ∞ ¹
ThroughputAllLocales-4                          644.5Ki ± ∞ ¹
LatencyBySize/100B-4                            449.2Ki ± ∞ ¹
LatencyBySize/1KB-4                             732.4Ki ± ∞ ¹
LatencyBySize/10KB-4                            722.7Ki ± ∞ ¹
LatencyBySize/100KB-4                           693.4Ki ± ∞ ¹
LatencyBySize/1MB-4                             683.6Ki ± ∞ ¹
geomean                                         1.962Mi
¹ need >= 6 samples for confidence interval at level 0.95


Generated by CI benchmark comparison

@leoneperdigao leoneperdigao reopened this Mar 20, 2026
@leoneperdigao
leoneperdigao force-pushed the feat/88-consistent-redaction branch 2 times, most recently from bade915 to b753321 Compare March 20, 2026 07:18
@github-actions

Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

Summary

Benchmark Status
🔍 Detect small (100B) ⚪ baseline
🔍 Detect medium (1KB) ⚪ baseline
🔍 Detect large (10KB) ⚪ baseline
🌍 All locales (1KB) ⚪ baseline
🏷️ Single locale (1KB) ⚪ baseline
✂️ Redact small (100B) ⚪ baseline
✂️ Redact large (10KB) ⚪ baseline
⚡ Throughput (all locales) ⚪ baseline
🧊 Cold start ⚪ baseline
🔥 Warm detection ⚪ baseline
⚡ Per-locale throughput (14 locales)
Locale Status
au ⚪ baseline
br ⚪ baseline
ca ⚪ baseline
cn ⚪ baseline
common ⚪ baseline
de ⚪ baseline
eu ⚪ baseline
fr ⚪ baseline
gb ⚪ baseline
in ⚪ baseline
jp ⚪ baseline
kr ⚪ baseline
nl ⚪ baseline
us ⚪ baseline
📊 Per-detector breakdown (70 detectors)
Detector Status
au/tfn ⚪ baseline
au/medicare ⚪ baseline
au/abn ⚪ baseline
au/phone ⚪ baseline
au/postcode ⚪ baseline
br/cpf ⚪ baseline
br/cnpj ⚪ baseline
br/phone ⚪ baseline
br/cep ⚪ baseline
br/pis ⚪ baseline
br/cnh ⚪ baseline
common/email ⚪ baseline
common/creditcard ⚪ baseline
common/ip ⚪ baseline
common/url ⚪ baseline
common/iban ⚪ baseline
common/mac ⚪ baseline
eu/passport_mrz ⚪ baseline
eu/vat ⚪ baseline
jp/my_number ⚪ baseline
jp/corporate_number ⚪ baseline
jp/phone ⚪ baseline
jp/postal ⚪ baseline
jp/passport ⚪ baseline
nl/bsn ⚪ baseline
nl/phone ⚪ baseline
nl/postal ⚪ baseline
nl/kvk ⚪ baseline
nl/id_document ⚪ baseline
us/ssn ⚪ baseline
us/itin ⚪ baseline
us/ein ⚪ baseline
us/phone ⚪ baseline
us/zip ⚪ baseline
us/passport ⚪ baseline
us/medicare ⚪ baseline
fr/nir ⚪ baseline
fr/nif ⚪ baseline
fr/phone ⚪ baseline
fr/postal ⚪ baseline
fr/id_card ⚪ baseline
gb/nin ⚪ baseline
gb/nhs ⚪ baseline
gb/utr ⚪ baseline
gb/phone ⚪ baseline
gb/postcode ⚪ baseline
in/aadhaar ⚪ baseline
in/pan ⚪ baseline
in/phone ⚪ baseline
in/pincode ⚪ baseline
in/passport ⚪ baseline
in/gstin ⚪ baseline
kr/rrn ⚪ baseline
kr/phone ⚪ baseline
kr/postal ⚪ baseline
kr/passport ⚪ baseline
ca/sin ⚪ baseline
ca/phone ⚪ baseline
ca/postal_code ⚪ baseline
ca/passport ⚪ baseline
cn/resident_id ⚪ baseline
cn/phone ⚪ baseline
cn/postal ⚪ baseline
cn/passport ⚪ baseline
cn/uscc ⚪ baseline
de/steuer_id ⚪ baseline
de/sozialversicherung ⚪ baseline
de/phone ⚪ baseline
de/plz ⚪ baseline
de/id_card ⚪ baseline
🔧 Other benchmarks (11)
Benchmark Status
LatencyBySize/100B ⚪ baseline
LatencyBySize/1KB ⚪ baseline
LatencyBySize/10KB ⚪ baseline
LatencyBySize/100KB ⚪ baseline
LatencyBySize/1MB ⚪ baseline
Concurrency/goroutines-1 ⚪ baseline
Concurrency/goroutines-2 ⚪ baseline
Concurrency/goroutines-4 ⚪ baseline
Concurrency/goroutines-8 ⚪ baseline
Concurrency/goroutines-16 ⚪ baseline
geomean ⚪ baseline
📋 Raw benchstat output (root)
goos: linux
goarch: amd64
pkg: github.com/taoq-ai/wuming
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ bench-head-root/results.txt │
                                    │           sec/op            │
DetectSmallText-4                                    215.7µ ± ∞ ¹
DetectMediumText-4                                   1.370m ± ∞ ¹
DetectLargeText-4                                    14.67m ± ∞ ¹
DetectAllLocales-4                                   1.362m ± ∞ ¹
DetectSingleLocale-4                                 348.7µ ± ∞ ¹
RedactSmallText-4                                    209.8µ ± ∞ ¹
RedactLargeText-4                                    14.70m ± ∞ ¹
PerDetector/au/tfn-4                                 29.44µ ± ∞ ¹
PerDetector/au/medicare-4                            30.45µ ± ∞ ¹
PerDetector/au/abn-4                                 30.28µ ± ∞ ¹
PerDetector/au/phone-4                               51.61µ ± ∞ ¹
PerDetector/au/postcode-4                            23.94µ ± ∞ ¹
PerDetector/br/cpf-4                                 50.56µ ± ∞ ¹
PerDetector/br/cnpj-4                                43.47µ ± ∞ ¹
PerDetector/br/phone-4                               88.94µ ± ∞ ¹
PerDetector/br/cep-4                                 43.79µ ± ∞ ¹
PerDetector/br/pis-4                                 43.64µ ± ∞ ¹
PerDetector/br/cnh-4                                 22.95µ ± ∞ ¹
PerDetector/common/email-4                           32.92µ ± ∞ ¹
PerDetector/common/creditcard-4                      25.28µ ± ∞ ¹
PerDetector/common/ip-4                              134.6µ ± ∞ ¹
PerDetector/common/url-4                             1.005µ ± ∞ ¹
PerDetector/common/iban-4                            23.89µ ± ∞ ¹
PerDetector/common/mac-4                             45.47µ ± ∞ ¹
PerDetector/eu/passport_mrz-4                        354.4n ± ∞ ¹
PerDetector/eu/vat-4                                 105.3µ ± ∞ ¹
PerDetector/jp/my_number-4                           22.99µ ± ∞ ¹
PerDetector/jp/corporate_number-4                    22.94µ ± ∞ ¹
PerDetector/jp/phone-4                               27.54µ ± ∞ ¹
PerDetector/jp/postal-4                              35.91µ ± ∞ ¹
PerDetector/jp/passport-4                            22.77µ ± ∞ ¹
PerDetector/nl/bsn-4                                 23.36µ ± ∞ ¹
PerDetector/nl/phone-4                               66.32µ ± ∞ ¹
PerDetector/nl/postal-4                              23.11µ ± ∞ ¹
PerDetector/nl/kvk-4                                 22.98µ ± ∞ ¹
PerDetector/nl/id_document-4                         45.89µ ± ∞ ¹
PerDetector/us/ssn-4                                 26.38µ ± ∞ ¹
PerDetector/us/itin-4                                24.50µ ± ∞ ¹
PerDetector/us/ein-4                                 61.01µ ± ∞ ¹
PerDetector/us/phone-4                               56.93µ ± ∞ ¹
PerDetector/us/zip-4                                 23.12µ ± ∞ ¹
PerDetector/us/passport-4                            29.15µ ± ∞ ¹
PerDetector/us/medicare-4                            22.96µ ± ∞ ¹
PerDetector/fr/nir-4                                 26.98µ ± ∞ ¹
PerDetector/fr/nif-4                                 23.39µ ± ∞ ¹
PerDetector/fr/phone-4                               27.45µ ± ∞ ¹
PerDetector/fr/postal-4                              26.05µ ± ∞ ¹
PerDetector/fr/id_card-4                             46.59µ ± ∞ ¹
PerDetector/gb/nin-4                                 33.30µ ± ∞ ¹
PerDetector/gb/nhs-4                                 26.50µ ± ∞ ¹
PerDetector/gb/utr-4                                 83.24µ ± ∞ ¹
PerDetector/gb/phone-4                               27.19µ ± ∞ ¹
PerDetector/gb/postcode-4                            27.14µ ± ∞ ¹
PerDetector/in/aadhaar-4                             23.18µ ± ∞ ¹
PerDetector/in/pan-4                                 22.74µ ± ∞ ¹
PerDetector/in/phone-4                               43.68µ ± ∞ ¹
PerDetector/in/pincode-4                             22.99µ ± ∞ ¹
PerDetector/in/passport-4                            22.56µ ± ∞ ¹
PerDetector/in/gstin-4                               24.20µ ± ∞ ¹
PerDetector/kr/rrn-4                                 26.45µ ± ∞ ¹
PerDetector/kr/phone-4                               27.49µ ± ∞ ¹
PerDetector/kr/postal-4                              23.21µ ± ∞ ¹
PerDetector/kr/passport-4                            22.64µ ± ∞ ¹
PerDetector/ca/sin-4                                 26.62µ ± ∞ ¹
PerDetector/ca/phone-4                               65.43µ ± ∞ ¹
PerDetector/ca/postal_code-4                         24.15µ ± ∞ ¹
PerDetector/ca/passport-4                            39.62µ ± ∞ ¹
PerDetector/cn/resident_id-4                         22.97µ ± ∞ ¹
PerDetector/cn/phone-4                               26.78µ ± ∞ ¹
PerDetector/cn/postal-4                              22.83µ ± ∞ ¹
PerDetector/cn/passport-4                            30.89µ ± ∞ ¹
PerDetector/cn/uscc-4                                24.79µ ± ∞ ¹
PerDetector/de/steuer_id-4                           22.94µ ± ∞ ¹
PerDetector/de/sozialversicherung-4                  23.29µ ± ∞ ¹
PerDetector/de/phone-4                               51.93µ ± ∞ ¹
PerDetector/de/plz-4                                 73.32µ ± ∞ ¹
PerDetector/de/id_card-4                             24.10µ ± ∞ ¹
ThroughputSingleLocale/au-4                          3.202m ± ∞ ¹
ThroughputSingleLocale/br-4                          3.699m ± ∞ ¹
ThroughputSingleLocale/ca-4                          2.943m ± ∞ ¹
ThroughputSingleLocale/cn-4                          2.891m ± ∞ ¹
ThroughputSingleLocale/common-4                      2.244m ± ∞ ¹
ThroughputSingleLocale/de-4                          3.213m ± ∞ ¹
ThroughputSingleLocale/eu-4                          2.663m ± ∞ ¹
ThroughputSingleLocale/fr-4                          3.044m ± ∞ ¹
ThroughputSingleLocale/gb-4                          3.233m ± ∞ ¹
ThroughputSingleLocale/in-4                          2.855m ± ∞ ¹
ThroughputSingleLocale/jp-4                          2.907m ± ∞ ¹
ThroughputSingleLocale/kr-4                          2.799m ± ∞ ¹
ThroughputSingleLocale/nl-4                          3.112m ± ∞ ¹
ThroughputSingleLocale/us-4                          3.581m ± ∞ ¹
ThroughputAllLocales-4                               14.68m ± ∞ ¹
LatencyBySize/100B-4                                 203.2µ ± ∞ ¹
LatencyBySize/1KB-4                                  1.230m ± ∞ ¹
LatencyBySize/10KB-4                                 12.90m ± ∞ ¹
LatencyBySize/100KB-4                                138.1m ± ∞ ¹
LatencyBySize/1MB-4                                   1.418 ± ∞ ¹
Concurrency/goroutines-1-4                           1.286m ± ∞ ¹
Concurrency/goroutines-2-4                           1.289m ± ∞ ¹
Concurrency/goroutines-4-4                           1.293m ± ∞ ¹
Concurrency/goroutines-8-4                           1.283m ± ∞ ¹
Concurrency/goroutines-16-4                          1.283m ± ∞ ¹
ColdStart-4                                          1.386m ± ∞ ¹
WarmDetection-4                                      1.366m ± ∞ ¹
geomean                                              129.4µ
¹ need >= 6 samples for confidence interval at level 0.95

                                    │ bench-head-root/results.txt │
                                    │            B/op             │
DetectSmallText-4                                   15.43Ki ± ∞ ¹
DetectMediumText-4                                  42.29Ki ± ∞ ¹
DetectLargeText-4                                   815.2Ki ± ∞ ¹
DetectAllLocales-4                                  41.87Ki ± ∞ ¹
DetectSingleLocale-4                                22.16Ki ± ∞ ¹
RedactSmallText-4                                   15.44Ki ± ∞ ¹
RedactLargeText-4                                   819.2Ki ± ∞ ¹
PerDetector/au/tfn-4                                  336.0 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                336.0 ± ∞ ¹
PerDetector/au/postcode-4                           1.581Ki ± ∞ ¹
PerDetector/br/cpf-4                                  1.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 1.000 ± ∞ ¹
PerDetector/br/phone-4                                338.0 ± ∞ ¹
PerDetector/br/cep-4                                  1.000 ± ∞ ¹
PerDetector/br/pis-4                                  1.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/common/email-4                            337.0 ± ∞ ¹
PerDetector/common/creditcard-4                       361.0 ± ∞ ¹
PerDetector/common/ip-4                               644.0 ± ∞ ¹
PerDetector/common/url-4                              337.0 ± ∞ ¹
PerDetector/common/iban-4                             538.0 ± ∞ ¹
PerDetector/common/mac-4                              336.0 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                528.0 ± ∞ ¹
PerDetector/jp/postal-4                               337.0 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                2.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          1.000 ± ∞ ¹
PerDetector/us/ssn-4                                  448.0 ± ∞ ¹
PerDetector/us/itin-4                                 304.0 ± ∞ ¹
PerDetector/us/ein-4                                  1.000 ± ∞ ¹
PerDetector/us/phone-4                                433.0 ± ∞ ¹
PerDetector/us/zip-4                                  336.0 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                336.0 ± ∞ ¹
PerDetector/fr/postal-4                               352.0 ± ∞ ¹
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹
PerDetector/gb/nin-4                                  1.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  2.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/in/aadhaar-4                              521.0 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                1.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                336.0 ± ∞ ¹
PerDetector/kr/postal-4                               336.0 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                306.0 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                529.0 ± ∞ ¹
PerDetector/de/plz-4                                  336.0 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                         693.4Ki ± ∞ ¹
ThroughputSingleLocale/br-4                         472.2Ki ± ∞ ¹
ThroughputSingleLocale/ca-4                         472.5Ki ± ∞ ¹
ThroughputSingleLocale/cn-4                         466.0Ki ± ∞ ¹
ThroughputSingleLocale/common-4                     472.1Ki ± ∞ ¹
ThroughputSingleLocale/de-4                         609.3Ki ± ∞ ¹
ThroughputSingleLocale/eu-4                         468.2Ki ± ∞ ¹
ThroughputSingleLocale/fr-4                         541.5Ki ± ∞ ¹
ThroughputSingleLocale/gb-4                         466.1Ki ± ∞ ¹
ThroughputSingleLocale/in-4                         479.4Ki ± ∞ ¹
ThroughputSingleLocale/jp-4                         655.8Ki ± ∞ ¹
ThroughputSingleLocale/kr-4                         546.1Ki ± ∞ ¹
ThroughputSingleLocale/nl-4                         472.3Ki ± ∞ ¹
ThroughputSingleLocale/us-4                         650.6Ki ± ∞ ¹
ThroughputAllLocales-4                              827.8Ki ± ∞ ¹
LatencyBySize/100B-4                                13.04Ki ± ∞ ¹
LatencyBySize/1KB-4                                 23.58Ki ± ∞ ¹
LatencyBySize/10KB-4                                103.1Ki ± ∞ ¹
LatencyBySize/100KB-4                               1.359Mi ± ∞ ¹
LatencyBySize/1MB-4                                 83.41Mi ± ∞ ¹
Concurrency/goroutines-1-4                          42.17Ki ± ∞ ¹
Concurrency/goroutines-2-4                          41.47Ki ± ∞ ¹
Concurrency/goroutines-4-4                          47.88Ki ± ∞ ¹
Concurrency/goroutines-8-4                          44.15Ki ± ∞ ¹
Concurrency/goroutines-16-4                         44.34Ki ± ∞ ¹
ColdStart-4                                         49.69Ki ± ∞ ¹
WarmDetection-4                                     41.54Ki ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                    │ bench-head-root/results.txt │
                                    │          allocs/op          │
DetectSmallText-4                                     178.0 ± ∞ ¹
DetectMediumText-4                                    304.0 ± ∞ ¹
DetectLargeText-4                                    1.309k ± ∞ ¹
DetectAllLocales-4                                    302.0 ± ∞ ¹
DetectSingleLocale-4                                  193.0 ± ∞ ¹
RedactSmallText-4                                     178.0 ± ∞ ¹
RedactLargeText-4                                    1.289k ± ∞ ¹
PerDetector/au/tfn-4                                  5.000 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                3.000 ± ∞ ¹
PerDetector/au/postcode-4                             12.00 ± ∞ ¹
PerDetector/br/cpf-4                                  0.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹
PerDetector/br/phone-4                                3.000 ± ∞ ¹
PerDetector/br/cep-4                                  0.000 ± ∞ ¹
PerDetector/br/pis-4                                  0.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/common/email-4                            3.000 ± ∞ ¹
PerDetector/common/creditcard-4                       5.000 ± ∞ ¹
PerDetector/common/ip-4                               7.000 ± ∞ ¹
PerDetector/common/url-4                              3.000 ± ∞ ¹
PerDetector/common/iban-4                             11.00 ± ∞ ¹
PerDetector/common/mac-4                              3.000 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                5.000 ± ∞ ¹
PerDetector/jp/postal-4                               3.000 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                0.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          0.000 ± ∞ ¹
PerDetector/us/ssn-4                                  4.000 ± ∞ ¹
PerDetector/us/itin-4                                 2.000 ± ∞ ¹
PerDetector/us/ein-4                                  0.000 ± ∞ ¹
PerDetector/us/phone-4                                4.000 ± ∞ ¹
PerDetector/us/zip-4                                  3.000 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                3.000 ± ∞ ¹
PerDetector/fr/postal-4                               3.000 ± ∞ ¹
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  0.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/in/aadhaar-4                              8.000 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                0.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                3.000 ± ∞ ¹
PerDetector/kr/postal-4                               3.000 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                3.000 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                5.000 ± ∞ ¹
PerDetector/de/plz-4                                  3.000 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                           861.0 ± ∞ ¹
ThroughputSingleLocale/br-4                           634.0 ± ∞ ¹
ThroughputSingleLocale/ca-4                           635.0 ± ∞ ¹
ThroughputSingleLocale/cn-4                           613.0 ± ∞ ¹
ThroughputSingleLocale/common-4                       598.0 ± ∞ ¹
ThroughputSingleLocale/de-4                           749.0 ± ∞ ¹
ThroughputSingleLocale/eu-4                           591.0 ± ∞ ¹
ThroughputSingleLocale/fr-4                           684.0 ± ∞ ¹
ThroughputSingleLocale/gb-4                           618.0 ± ∞ ¹
ThroughputSingleLocale/in-4                           694.0 ± ∞ ¹
ThroughputSingleLocale/jp-4                           783.0 ± ∞ ¹
ThroughputSingleLocale/kr-4                           679.0 ± ∞ ¹
ThroughputSingleLocale/nl-4                           612.0 ± ∞ ¹
ThroughputSingleLocale/us-4                           772.0 ± ∞ ¹
ThroughputAllLocales-4                               1.318k ± ∞ ¹
LatencyBySize/100B-4                                  155.0 ± ∞ ¹
LatencyBySize/1KB-4                                   201.0 ± ∞ ¹
LatencyBySize/10KB-4                                  259.0 ± ∞ ¹
LatencyBySize/100KB-4                                 605.0 ± ∞ ¹
LatencyBySize/1MB-4                                  3.506k ± ∞ ¹
Concurrency/goroutines-1-4                            302.0 ± ∞ ¹
Concurrency/goroutines-2-4                            303.0 ± ∞ ¹
Concurrency/goroutines-4-4                            307.0 ± ∞ ¹
Concurrency/goroutines-8-4                            303.0 ± ∞ ¹
Concurrency/goroutines-16-4                           307.0 ± ∞ ¹
ColdStart-4                                           337.0 ± ∞ ¹
WarmDetection-4                                       303.0 ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                │ bench-head-root/results.txt │
                                │             B/s             │
ThroughputSingleLocale/au-4                     3.099Mi ± ∞ ¹
ThroughputSingleLocale/br-4                     2.680Mi ± ∞ ¹
ThroughputSingleLocale/ca-4                     3.366Mi ± ∞ ¹
ThroughputSingleLocale/cn-4                     3.424Mi ± ∞ ¹
ThroughputSingleLocale/common-4                 4.416Mi ± ∞ ¹
ThroughputSingleLocale/de-4                     3.080Mi ± ∞ ¹
ThroughputSingleLocale/eu-4                     3.719Mi ± ∞ ¹
ThroughputSingleLocale/fr-4                     3.252Mi ± ∞ ¹
ThroughputSingleLocale/gb-4                     3.061Mi ± ∞ ¹
ThroughputSingleLocale/in-4                     3.471Mi ± ∞ ¹
ThroughputSingleLocale/jp-4                     3.405Mi ± ∞ ¹
ThroughputSingleLocale/kr-4                     3.538Mi ± ∞ ¹
ThroughputSingleLocale/nl-4                     3.185Mi ± ∞ ¹
ThroughputSingleLocale/us-4                     2.766Mi ± ∞ ¹
ThroughputAllLocales-4                          693.4Ki ± ∞ ¹
LatencyBySize/100B-4                            478.5Ki ± ∞ ¹
LatencyBySize/1KB-4                             810.5Ki ± ∞ ¹
LatencyBySize/10KB-4                            771.5Ki ± ∞ ¹
LatencyBySize/100KB-4                           722.7Ki ± ∞ ¹
LatencyBySize/1MB-4                             722.7Ki ± ∞ ¹
geomean                                         2.047Mi
¹ need >= 6 samples for confidence interval at level 0.95

cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                    │ bench-base-root/results.txt │
                                    │           sec/op            │
DetectSmallText-4                                    228.1µ ± ∞ ¹
DetectMediumText-4                                   1.476m ± ∞ ¹
DetectLargeText-4                                    15.71m ± ∞ ¹
DetectAllLocales-4                                   1.468m ± ∞ ¹
DetectSingleLocale-4                                 361.5µ ± ∞ ¹
RedactSmallText-4                                    221.5µ ± ∞ ¹
RedactLargeText-4                                    15.64m ± ∞ ¹
PerDetector/au/tfn-4                                 26.88µ ± ∞ ¹
PerDetector/au/medicare-4                            27.69µ ± ∞ ¹
PerDetector/au/abn-4                                 27.75µ ± ∞ ¹
PerDetector/au/phone-4                               44.93µ ± ∞ ¹
PerDetector/au/postcode-4                            22.81µ ± ∞ ¹
PerDetector/br/cpf-4                                 43.96µ ± ∞ ¹
PerDetector/br/cnpj-4                                39.60µ ± ∞ ¹
PerDetector/br/phone-4                               79.41µ ± ∞ ¹
PerDetector/br/cep-4                                 39.74µ ± ∞ ¹
PerDetector/br/pis-4                                 39.63µ ± ∞ ¹
PerDetector/br/cnh-4                                 21.64µ ± ∞ ¹
PerDetector/common/email-4                           29.62µ ± ∞ ¹
PerDetector/common/creditcard-4                      23.62µ ± ∞ ¹
PerDetector/common/ip-4                              127.3µ ± ∞ ¹
PerDetector/common/url-4                             973.4n ± ∞ ¹
PerDetector/common/iban-4                            22.38µ ± ∞ ¹
PerDetector/common/mac-4                             41.93µ ± ∞ ¹
PerDetector/eu/passport_mrz-4                        282.5n ± ∞ ¹
PerDetector/eu/vat-4                                 95.22µ ± ∞ ¹
PerDetector/jp/my_number-4                           21.64µ ± ∞ ¹
PerDetector/jp/corporate_number-4                    21.64µ ± ∞ ¹
PerDetector/jp/phone-4                               24.50µ ± ∞ ¹
PerDetector/jp/postal-4                              33.31µ ± ∞ ¹
PerDetector/jp/passport-4                            21.41µ ± ∞ ¹
PerDetector/nl/bsn-4                                 21.87µ ± ∞ ¹
PerDetector/nl/phone-4                               58.78µ ± ∞ ¹
PerDetector/nl/postal-4                              21.67µ ± ∞ ¹
PerDetector/nl/kvk-4                                 21.57µ ± ∞ ¹
PerDetector/nl/id_document-4                         43.04µ ± ∞ ¹
PerDetector/us/ssn-4                                 24.36µ ± ∞ ¹
PerDetector/us/itin-4                                22.81µ ± ∞ ¹
PerDetector/us/ein-4                                 54.97µ ± ∞ ¹
PerDetector/us/phone-4                               50.39µ ± ∞ ¹
PerDetector/us/zip-4                                 21.69µ ± ∞ ¹
PerDetector/us/passport-4                            26.23µ ± ∞ ¹
PerDetector/us/medicare-4                            21.43µ ± ∞ ¹
PerDetector/fr/nir-4                                 24.67µ ± ∞ ¹
PerDetector/fr/nif-4                                 21.92µ ± ∞ ¹
PerDetector/fr/phone-4                               24.75µ ± ∞ ¹
PerDetector/fr/postal-4                              24.30µ ± ∞ ¹
PerDetector/fr/id_card-4                             44.12µ ± ∞ ¹
PerDetector/gb/nin-4                                 30.75µ ± ∞ ¹
PerDetector/gb/nhs-4                                 24.39µ ± ∞ ¹
PerDetector/gb/utr-4                                 72.69µ ± ∞ ¹
PerDetector/gb/phone-4                               24.20µ ± ∞ ¹
PerDetector/gb/postcode-4                            25.46µ ± ∞ ¹
PerDetector/in/aadhaar-4                             21.79µ ± ∞ ¹
PerDetector/in/pan-4                                 21.35µ ± ∞ ¹
PerDetector/in/phone-4                               39.27µ ± ∞ ¹
PerDetector/in/pincode-4                             21.51µ ± ∞ ¹
PerDetector/in/passport-4                            21.18µ ± ∞ ¹
PerDetector/in/gstin-4                               21.47µ ± ∞ ¹
PerDetector/kr/rrn-4                                 24.77µ ± ∞ ¹
PerDetector/kr/phone-4                               24.71µ ± ∞ ¹
PerDetector/kr/postal-4                              21.90µ ± ∞ ¹
PerDetector/kr/passport-4                            21.26µ ± ∞ ¹
PerDetector/ca/sin-4                                 24.44µ ± ∞ ¹
PerDetector/ca/phone-4                               57.52µ ± ∞ ¹
PerDetector/ca/postal_code-4                         22.91µ ± ∞ ¹
PerDetector/ca/passport-4                            21.32µ ± ∞ ¹
PerDetector/cn/resident_id-4                         21.43µ ± ∞ ¹
PerDetector/cn/phone-4                               23.94µ ± ∞ ¹
PerDetector/cn/postal-4                              21.40µ ± ∞ ¹
PerDetector/cn/passport-4                            29.06µ ± ∞ ¹
PerDetector/cn/uscc-4                                23.25µ ± ∞ ¹
PerDetector/de/steuer_id-4                           21.59µ ± ∞ ¹
PerDetector/de/sozialversicherung-4                  21.93µ ± ∞ ¹
PerDetector/de/phone-4                               45.19µ ± ∞ ¹
PerDetector/de/plz-4                                 66.36µ ± ∞ ¹
PerDetector/de/id_card-4                             22.61µ ± ∞ ¹
ThroughputSingleLocale/au-4                          3.214m ± ∞ ¹
ThroughputSingleLocale/br-4                          3.816m ± ∞ ¹
ThroughputSingleLocale/ca-4                          3.016m ± ∞ ¹
ThroughputSingleLocale/cn-4                          2.863m ± ∞ ¹
ThroughputSingleLocale/common-4                      2.239m ± ∞ ¹
ThroughputSingleLocale/de-4                          3.437m ± ∞ ¹
ThroughputSingleLocale/eu-4                          2.717m ± ∞ ¹
ThroughputSingleLocale/fr-4                          3.117m ± ∞ ¹
ThroughputSingleLocale/gb-4                          3.415m ± ∞ ¹
ThroughputSingleLocale/in-4                          2.917m ± ∞ ¹
ThroughputSingleLocale/jp-4                          3.003m ± ∞ ¹
ThroughputSingleLocale/kr-4                          2.877m ± ∞ ¹
ThroughputSingleLocale/nl-4                          3.185m ± ∞ ¹
ThroughputSingleLocale/us-4                          3.691m ± ∞ ¹
ThroughputAllLocales-4                               15.65m ± ∞ ¹
LatencyBySize/100B-4                                 215.0µ ± ∞ ¹
LatencyBySize/1KB-4                                  1.363m ± ∞ ¹
LatencyBySize/10KB-4                                 13.83m ± ∞ ¹
LatencyBySize/100KB-4                                145.4m ± ∞ ¹
LatencyBySize/1MB-4                                   1.491 ± ∞ ¹
Concurrency/goroutines-1-4                           1.406m ± ∞ ¹
Concurrency/goroutines-2-4                           1.416m ± ∞ ¹
Concurrency/goroutines-4-4                           1.415m ± ∞ ¹
Concurrency/goroutines-8-4                           1.416m ± ∞ ¹
Concurrency/goroutines-16-4                          1.405m ± ∞ ¹
ColdStart-4                                          1.496m ± ∞ ¹
WarmDetection-4                                      1.465m ± ∞ ¹
geomean                                              123.7µ
¹ need >= 6 samples for confidence interval at level 0.95

                                    │ bench-base-root/results.txt │
                                    │            B/op             │
DetectSmallText-4                                   15.46Ki ± ∞ ¹
DetectMediumText-4                                  43.16Ki ± ∞ ¹
DetectLargeText-4                                   782.2Ki ± ∞ ¹
DetectAllLocales-4                                  42.50Ki ± ∞ ¹
DetectSingleLocale-4                                21.64Ki ± ∞ ¹
RedactSmallText-4                                   15.59Ki ± ∞ ¹
RedactLargeText-4                                   840.9Ki ± ∞ ¹
PerDetector/au/tfn-4                                  336.0 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                337.0 ± ∞ ¹
PerDetector/au/postcode-4                           1.581Ki ± ∞ ¹
PerDetector/br/cpf-4                                  1.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 1.000 ± ∞ ¹
PerDetector/br/phone-4                                338.0 ± ∞ ¹
PerDetector/br/cep-4                                  1.000 ± ∞ ¹
PerDetector/br/pis-4                                  0.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/common/email-4                            336.0 ± ∞ ¹
PerDetector/common/creditcard-4                       361.0 ± ∞ ¹
PerDetector/common/ip-4                               649.0 ± ∞ ¹
PerDetector/common/url-4                              337.0 ± ∞ ¹
PerDetector/common/iban-4                             538.0 ± ∞ ¹
PerDetector/common/mac-4                              337.0 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                528.0 ± ∞ ¹
PerDetector/jp/postal-4                               337.0 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                1.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          1.000 ± ∞ ¹
PerDetector/us/ssn-4                                  449.0 ± ∞ ¹
PerDetector/us/itin-4                                 304.0 ± ∞ ¹
PerDetector/us/ein-4                                  1.000 ± ∞ ¹
PerDetector/us/phone-4                                433.0 ± ∞ ¹
PerDetector/us/zip-4                                  336.0 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                336.0 ± ∞ ¹
PerDetector/fr/postal-4                               352.0 ± ∞ ¹
PerDetector/fr/id_card-4                              1.000 ± ∞ ¹
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  2.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/in/aadhaar-4                              520.0 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                1.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                336.0 ± ∞ ¹
PerDetector/kr/postal-4                               336.0 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                304.0 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                529.0 ± ∞ ¹
PerDetector/de/plz-4                                  338.0 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                         680.3Ki ± ∞ ¹
ThroughputSingleLocale/br-4                         472.8Ki ± ∞ ¹
ThroughputSingleLocale/ca-4                         468.6Ki ± ∞ ¹
ThroughputSingleLocale/cn-4                         467.4Ki ± ∞ ¹
ThroughputSingleLocale/common-4                     470.6Ki ± ∞ ¹
ThroughputSingleLocale/de-4                         607.3Ki ± ∞ ¹
ThroughputSingleLocale/eu-4                         468.7Ki ± ∞ ¹
ThroughputSingleLocale/fr-4                         541.0Ki ± ∞ ¹
ThroughputSingleLocale/gb-4                         463.6Ki ± ∞ ¹
ThroughputSingleLocale/in-4                         478.6Ki ± ∞ ¹
ThroughputSingleLocale/jp-4                         662.8Ki ± ∞ ¹
ThroughputSingleLocale/kr-4                         547.0Ki ± ∞ ¹
ThroughputSingleLocale/nl-4                         470.4Ki ± ∞ ¹
ThroughputSingleLocale/us-4                         654.0Ki ± ∞ ¹
ThroughputAllLocales-4                              829.0Ki ± ∞ ¹
LatencyBySize/100B-4                                13.12Ki ± ∞ ¹
LatencyBySize/1KB-4                                 23.86Ki ± ∞ ¹
LatencyBySize/10KB-4                                99.86Ki ± ∞ ¹
LatencyBySize/100KB-4                               1.350Mi ± ∞ ¹
LatencyBySize/1MB-4                                 83.43Mi ± ∞ ¹
Concurrency/goroutines-1-4                          44.93Ki ± ∞ ¹
Concurrency/goroutines-2-4                          42.41Ki ± ∞ ¹
Concurrency/goroutines-4-4                          49.60Ki ± ∞ ¹
Concurrency/goroutines-8-4                          46.52Ki ± ∞ ¹
Concurrency/goroutines-16-4                         46.16Ki ± ∞ ¹
ColdStart-4                                         49.95Ki ± ∞ ¹
WarmDetection-4                                     43.81Ki ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                    │ bench-base-root/results.txt │
                                    │          allocs/op          │
DetectSmallText-4                                     178.0 ± ∞ ¹
DetectMediumText-4                                    301.0 ± ∞ ¹
DetectLargeText-4                                    1.254k ± ∞ ¹
DetectAllLocales-4                                    305.0 ± ∞ ¹
DetectSingleLocale-4                                  192.0 ± ∞ ¹
RedactSmallText-4                                     178.0 ± ∞ ¹
RedactLargeText-4                                    1.302k ± ∞ ¹
PerDetector/au/tfn-4                                  5.000 ± ∞ ¹
PerDetector/au/medicare-4                             0.000 ± ∞ ¹
PerDetector/au/abn-4                                  0.000 ± ∞ ¹
PerDetector/au/phone-4                                3.000 ± ∞ ¹
PerDetector/au/postcode-4                             12.00 ± ∞ ¹
PerDetector/br/cpf-4                                  0.000 ± ∞ ¹
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹
PerDetector/br/phone-4                                3.000 ± ∞ ¹
PerDetector/br/cep-4                                  0.000 ± ∞ ¹
PerDetector/br/pis-4                                  0.000 ± ∞ ¹
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹
PerDetector/common/email-4                            3.000 ± ∞ ¹
PerDetector/common/creditcard-4                       5.000 ± ∞ ¹
PerDetector/common/ip-4                               7.000 ± ∞ ¹
PerDetector/common/url-4                              3.000 ± ∞ ¹
PerDetector/common/iban-4                             11.00 ± ∞ ¹
PerDetector/common/mac-4                              3.000 ± ∞ ¹
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹
PerDetector/jp/phone-4                                5.000 ± ∞ ¹
PerDetector/jp/postal-4                               3.000 ± ∞ ¹
PerDetector/jp/passport-4                             0.000 ± ∞ ¹
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹
PerDetector/nl/phone-4                                0.000 ± ∞ ¹
PerDetector/nl/postal-4                               0.000 ± ∞ ¹
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹
PerDetector/nl/id_document-4                          0.000 ± ∞ ¹
PerDetector/us/ssn-4                                  4.000 ± ∞ ¹
PerDetector/us/itin-4                                 2.000 ± ∞ ¹
PerDetector/us/ein-4                                  0.000 ± ∞ ¹
PerDetector/us/phone-4                                4.000 ± ∞ ¹
PerDetector/us/zip-4                                  3.000 ± ∞ ¹
PerDetector/us/passport-4                             0.000 ± ∞ ¹
PerDetector/us/medicare-4                             0.000 ± ∞ ¹
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹
PerDetector/fr/phone-4                                3.000 ± ∞ ¹
PerDetector/fr/postal-4                               3.000 ± ∞ ¹
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹
PerDetector/gb/utr-4                                  0.000 ± ∞ ¹
PerDetector/gb/phone-4                                0.000 ± ∞ ¹
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹
PerDetector/in/aadhaar-4                              8.000 ± ∞ ¹
PerDetector/in/pan-4                                  0.000 ± ∞ ¹
PerDetector/in/phone-4                                0.000 ± ∞ ¹
PerDetector/in/pincode-4                              0.000 ± ∞ ¹
PerDetector/in/passport-4                             0.000 ± ∞ ¹
PerDetector/in/gstin-4                                0.000 ± ∞ ¹
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹
PerDetector/kr/phone-4                                3.000 ± ∞ ¹
PerDetector/kr/postal-4                               3.000 ± ∞ ¹
PerDetector/kr/passport-4                             0.000 ± ∞ ¹
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹
PerDetector/ca/phone-4                                3.000 ± ∞ ¹
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹
PerDetector/ca/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹
PerDetector/cn/phone-4                                0.000 ± ∞ ¹
PerDetector/cn/postal-4                               0.000 ± ∞ ¹
PerDetector/cn/passport-4                             0.000 ± ∞ ¹
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹
PerDetector/de/phone-4                                5.000 ± ∞ ¹
PerDetector/de/plz-4                                  3.000 ± ∞ ¹
PerDetector/de/id_card-4                              0.000 ± ∞ ¹
ThroughputSingleLocale/au-4                           858.0 ± ∞ ¹
ThroughputSingleLocale/br-4                           633.0 ± ∞ ¹
ThroughputSingleLocale/ca-4                           635.0 ± ∞ ¹
ThroughputSingleLocale/cn-4                           611.0 ± ∞ ¹
ThroughputSingleLocale/common-4                       595.0 ± ∞ ¹
ThroughputSingleLocale/de-4                           746.0 ± ∞ ¹
ThroughputSingleLocale/eu-4                           593.0 ± ∞ ¹
ThroughputSingleLocale/fr-4                           686.0 ± ∞ ¹
ThroughputSingleLocale/gb-4                           612.0 ± ∞ ¹
ThroughputSingleLocale/in-4                           690.0 ± ∞ ¹
ThroughputSingleLocale/jp-4                           777.0 ± ∞ ¹
ThroughputSingleLocale/kr-4                           681.0 ± ∞ ¹
ThroughputSingleLocale/nl-4                           613.0 ± ∞ ¹
ThroughputSingleLocale/us-4                           783.0 ± ∞ ¹
ThroughputAllLocales-4                               1.302k ± ∞ ¹
LatencyBySize/100B-4                                  155.0 ± ∞ ¹
LatencyBySize/1KB-4                                   203.0 ± ∞ ¹
LatencyBySize/10KB-4                                  258.0 ± ∞ ¹
LatencyBySize/100KB-4                                 554.0 ± ∞ ¹
LatencyBySize/1MB-4                                  3.619k ± ∞ ¹
Concurrency/goroutines-1-4                            305.0 ± ∞ ¹
Concurrency/goroutines-2-4                            306.0 ± ∞ ¹
Concurrency/goroutines-4-4                            308.0 ± ∞ ¹
Concurrency/goroutines-8-4                            305.0 ± ∞ ¹
Concurrency/goroutines-16-4                           306.0 ± ∞ ¹
ColdStart-4                                           337.0 ± ∞ ¹
WarmDetection-4                                       303.0 ± ∞ ¹
geomean                                                         ²
¹ need >= 6 samples for confidence interval at level 0.95
² summaries must be >0 to compute geomean

                                │ bench-base-root/results.txt │
                                │             B/s             │
ThroughputSingleLocale/au-4                     3.080Mi ± ∞ ¹
ThroughputSingleLocale/br-4                     2.594Mi ± ∞ ¹
ThroughputSingleLocale/ca-4                     3.290Mi ± ∞ ¹
ThroughputSingleLocale/cn-4                     3.462Mi ± ∞ ¹
ThroughputSingleLocale/common-4                 4.425Mi ± ∞ ¹
ThroughputSingleLocale/de-4                     2.880Mi ± ∞ ¹
ThroughputSingleLocale/eu-4                     3.643Mi ± ∞ ¹
ThroughputSingleLocale/fr-4                     3.176Mi ± ∞ ¹
ThroughputSingleLocale/gb-4                     2.899Mi ± ∞ ¹
ThroughputSingleLocale/in-4                     3.395Mi ± ∞ ¹
ThroughputSingleLocale/jp-4                     3.300Mi ± ∞ ¹
ThroughputSingleLocale/kr-4                     3.443Mi ± ∞ ¹
ThroughputSingleLocale/nl-4                     3.109Mi ± ∞ ¹
ThroughputSingleLocale/us-4                     2.689Mi ± ∞ ¹
ThroughputAllLocales-4                          644.5Ki ± ∞ ¹
LatencyBySize/100B-4                            459.0Ki ± ∞ ¹
LatencyBySize/1KB-4                             732.4Ki ± ∞ ¹
LatencyBySize/10KB-4                            722.7Ki ± ∞ ¹
LatencyBySize/100KB-4                           683.6Ki ± ∞ ¹
LatencyBySize/1MB-4                             683.6Ki ± ∞ ¹
geomean                                         1.973Mi
¹ need >= 6 samples for confidence interval at level 0.95


Generated by CI benchmark comparison

@leoneperdigao
leoneperdigao force-pushed the feat/88-consistent-redaction branch from c5d092d to 6a58563 Compare March 20, 2026 07:35
Add a Consistent replacer wrapper that ensures identical PII values
produce identical replacement strings within a single Replace call.
When wrapping the Redact replacer, values are numbered per-type
(e.g. [EMAIL_1], [EMAIL_2]). Works with all replacer strategies.

Expose via WithConsistentRedaction() option in the public API.

Closes #88
@leoneperdigao
leoneperdigao force-pushed the feat/88-consistent-redaction branch from 6a58563 to 94c0d1f Compare March 20, 2026 07:36
@github-actions

Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

Summary

Benchmark Status
🔍 Detect small (100B) ⚪ baseline
🔍 Detect medium (1KB) ⚪ baseline
🔍 Detect large (10KB) ⚪ baseline
🌍 All locales (1KB) ⚪ baseline
🏷️ Single locale (1KB) ⚪ baseline
✂️ Redact small (100B) ⚪ baseline
✂️ Redact large (10KB) ⚪ baseline
⚡ Throughput (all locales) ⚪ baseline
🧊 Cold start ⚪ baseline
🔥 Warm detection ⚪ baseline
⚡ Per-locale throughput (14 locales)
Locale Status
au ⚪ baseline
br ⚪ baseline
ca ⚪ baseline
cn ⚪ baseline
common ⚪ baseline
de ⚪ baseline
eu ⚪ baseline
fr ⚪ baseline
gb ⚪ baseline
in ⚪ baseline
jp ⚪ baseline
kr ⚪ baseline
nl ⚪ baseline
us ⚪ baseline
📊 Per-detector breakdown (70 detectors)
Detector Status
au/tfn ⚪ baseline
au/medicare ⚪ baseline
au/abn ⚪ baseline
au/phone ⚪ baseline
au/postcode ⚪ baseline
br/cpf ⚪ baseline
br/cnpj ⚪ baseline
br/phone ⚪ baseline
br/cep ⚪ baseline
br/pis ⚪ baseline
br/cnh ⚪ baseline
in/aadhaar ⚪ baseline
in/pan ⚪ baseline
in/phone ⚪ baseline
in/pincode ⚪ baseline
in/passport ⚪ baseline
in/gstin ⚪ baseline
jp/my_number ⚪ baseline
jp/corporate_number ⚪ baseline
jp/phone ⚪ baseline
jp/postal ⚪ baseline
jp/passport ⚪ baseline
kr/rrn ⚪ baseline
kr/phone ⚪ baseline
kr/postal ⚪ baseline
kr/passport ⚪ baseline
us/ssn ⚪ baseline
us/itin ⚪ baseline
us/ein ⚪ baseline
us/phone ⚪ baseline
us/zip ⚪ baseline
us/passport ⚪ baseline
us/medicare ⚪ baseline
ca/sin ⚪ baseline
ca/phone ⚪ baseline
ca/postal_code ⚪ baseline
ca/passport ⚪ baseline
common/email ⚪ baseline
common/creditcard ⚪ baseline
common/ip ⚪ baseline
common/url ⚪ baseline
common/iban ⚪ baseline
common/mac ⚪ baseline
fr/nir ⚪ baseline
fr/nif ⚪ baseline
fr/phone ⚪ baseline
fr/postal ⚪ baseline
fr/id_card ⚪ baseline
nl/bsn ⚪ baseline
nl/phone ⚪ baseline
nl/postal ⚪ baseline
nl/kvk ⚪ baseline
nl/id_document ⚪ baseline
de/steuer_id ⚪ baseline
de/sozialversicherung ⚪ baseline
de/phone ⚪ baseline
de/plz ⚪ baseline
de/id_card ⚪ baseline
eu/passport_mrz ⚪ baseline
eu/vat ⚪ baseline
cn/resident_id ⚪ baseline
cn/phone ⚪ baseline
cn/postal ⚪ baseline
cn/passport ⚪ baseline
cn/uscc ⚪ baseline
gb/nin ⚪ baseline
gb/nhs ⚪ baseline
gb/utr ⚪ baseline
gb/phone ⚪ baseline
gb/postcode ⚪ baseline
🔧 Other benchmarks (11)
Benchmark Status
LatencyBySize/100B ⚪ baseline
LatencyBySize/1KB ⚪ baseline
LatencyBySize/10KB ⚪ baseline
LatencyBySize/100KB ⚪ baseline
LatencyBySize/1MB ⚪ baseline
Concurrency/goroutines-1 ⚪ baseline
Concurrency/goroutines-2 ⚪ baseline
Concurrency/goroutines-4 ⚪ baseline
Concurrency/goroutines-8 ⚪ baseline
Concurrency/goroutines-16 ⚪ baseline
geomean 🟡 +0.86% slower
📋 Raw benchstat output (root)
goos: linux
goarch: amd64
pkg: github.com/taoq-ai/wuming
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ bench-base-root/results.txt │     bench-head-root/results.txt      │
                                    │           sec/op            │    sec/op     vs base                │
DetectSmallText-4                                    213.8µ ± ∞ ¹   212.8µ ± ∞ ¹       ~ (p=0.700 n=3) ²
DetectMediumText-4                                   1.358m ± ∞ ¹   1.355m ± ∞ ¹       ~ (p=0.700 n=3) ²
DetectLargeText-4                                    14.77m ± ∞ ¹   14.69m ± ∞ ¹       ~ (p=0.400 n=3) ²
DetectAllLocales-4                                   1.353m ± ∞ ¹   1.353m ± ∞ ¹       ~ (p=0.700 n=3) ²
DetectSingleLocale-4                                 362.0µ ± ∞ ¹   361.6µ ± ∞ ¹       ~ (p=1.000 n=3) ²
RedactSmallText-4                                    212.1µ ± ∞ ¹   215.8µ ± ∞ ¹       ~ (p=0.200 n=3) ²
RedactLargeText-4                                    14.74m ± ∞ ¹   14.69m ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/au/tfn-4                                 29.55µ ± ∞ ¹   29.29µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/au/medicare-4                            30.34µ ± ∞ ¹   30.37µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/au/abn-4                                 30.82µ ± ∞ ¹   30.69µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/phone-4                               51.57µ ± ∞ ¹   51.57µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/postcode-4                            24.01µ ± ∞ ¹   23.95µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/br/cpf-4                                 49.65µ ± ∞ ¹   49.63µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/br/cnpj-4                                43.55µ ± ∞ ¹   45.97µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/br/phone-4                               88.94µ ± ∞ ¹   89.30µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/br/cep-4                                 43.86µ ± ∞ ¹   46.26µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/br/pis-4                                 43.59µ ± ∞ ¹   43.56µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/br/cnh-4                                 22.98µ ± ∞ ¹   26.16µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/in/aadhaar-4                             23.17µ ± ∞ ¹   23.17µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/in/pan-4                                 22.72µ ± ∞ ¹   22.74µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/in/phone-4                               43.67µ ± ∞ ¹   43.75µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/in/pincode-4                             23.02µ ± ∞ ¹   23.06µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/in/passport-4                            22.69µ ± ∞ ¹   22.73µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/gstin-4                               22.86µ ± ∞ ¹   22.83µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/jp/my_number-4                           22.97µ ± ∞ ¹   23.17µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/jp/corporate_number-4                    23.01µ ± ∞ ¹   23.18µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/jp/phone-4                               27.55µ ± ∞ ¹   27.44µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/jp/postal-4                              35.91µ ± ∞ ¹   36.06µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/jp/passport-4                            22.74µ ± ∞ ¹   22.76µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/kr/rrn-4                                 26.45µ ± ∞ ¹   26.58µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/kr/phone-4                               27.47µ ± ∞ ¹   27.80µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/kr/postal-4                              23.30µ ± ∞ ¹   23.27µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/kr/passport-4                            23.19µ ± ∞ ¹   22.81µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/us/ssn-4                                 26.38µ ± ∞ ¹   26.26µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/us/itin-4                                24.43µ ± ∞ ¹   24.54µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/ein-4                                 61.27µ ± ∞ ¹   61.13µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/us/phone-4                               57.10µ ± ∞ ¹   56.95µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/zip-4                                 23.15µ ± ∞ ¹   23.23µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/us/passport-4                            28.48µ ± ∞ ¹   28.32µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/us/medicare-4                            23.02µ ± ∞ ¹   22.81µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/ca/sin-4                                 26.76µ ± ∞ ¹   26.52µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/ca/phone-4                               65.37µ ± ∞ ¹   65.67µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/ca/postal_code-4                         24.13µ ± ∞ ¹   24.17µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/ca/passport-4                            22.72µ ± ∞ ¹   22.92µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/common/email-4                           32.99µ ± ∞ ¹   32.78µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/common/creditcard-4                      25.17µ ± ∞ ¹   25.28µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/common/ip-4                              134.3µ ± ∞ ¹   135.0µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/common/url-4                             1.003µ ± ∞ ¹   1.012µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/common/iban-4                            23.79µ ± ∞ ¹   23.95µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/common/mac-4                             45.52µ ± ∞ ¹   45.69µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/fr/nir-4                                 27.10µ ± ∞ ¹   27.03µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/fr/nif-4                                 23.45µ ± ∞ ¹   23.60µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/fr/phone-4                               27.50µ ± ∞ ¹   27.45µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/fr/postal-4                              25.92µ ± ∞ ¹   26.04µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/fr/id_card-4                             46.98µ ± ∞ ¹   47.07µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/bsn-4                                 23.42µ ± ∞ ¹   23.47µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/nl/phone-4                               67.17µ ± ∞ ¹   70.97µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/nl/postal-4                              23.31µ ± ∞ ¹   23.30µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/kvk-4                                 22.95µ ± ∞ ¹   23.01µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/nl/id_document-4                         46.07µ ± ∞ ¹   46.28µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/de/steuer_id-4                           22.99µ ± ∞ ¹   22.94µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/sozialversicherung-4                  23.39µ ± ∞ ¹   23.31µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/de/phone-4                               51.52µ ± ∞ ¹   51.61µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/de/plz-4                                 74.24µ ± ∞ ¹   73.92µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/de/id_card-4                             23.94µ ± ∞ ¹   23.97µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/eu/passport_mrz-4                        354.4n ± ∞ ¹   357.1n ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/eu/vat-4                                 104.5µ ± ∞ ¹   132.5µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/cn/resident_id-4                         23.14µ ± ∞ ¹   22.92µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/cn/phone-4                               26.76µ ± ∞ ¹   26.78µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/cn/postal-4                              22.79µ ± ∞ ¹   23.07µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/cn/passport-4                            30.92µ ± ∞ ¹   30.98µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/uscc-4                                25.20µ ± ∞ ¹   24.72µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/gb/nin-4                                 33.33µ ± ∞ ¹   33.29µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/gb/nhs-4                                 26.68µ ± ∞ ¹   26.41µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/gb/utr-4                                 83.05µ ± ∞ ¹   83.54µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/gb/phone-4                               27.31µ ± ∞ ¹   27.20µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/gb/postcode-4                            27.12µ ± ∞ ¹   27.13µ ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/au-4                          3.165m ± ∞ ¹   3.154m ± ∞ ¹       ~ (p=0.400 n=3) ²
ThroughputSingleLocale/br-4                          3.742m ± ∞ ¹   3.721m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/ca-4                          2.945m ± ∞ ¹   2.909m ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/cn-4                          2.818m ± ∞ ¹   2.883m ± ∞ ¹       ~ (p=0.700 n=3) ²
ThroughputSingleLocale/common-4                      2.265m ± ∞ ¹   2.238m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/de-4                          3.338m ± ∞ ¹   3.316m ± ∞ ¹       ~ (p=0.700 n=3) ²
ThroughputSingleLocale/eu-4                          2.687m ± ∞ ¹   2.669m ± ∞ ¹       ~ (p=0.400 n=3) ²
ThroughputSingleLocale/fr-4                          3.087m ± ∞ ¹   3.033m ± ∞ ¹       ~ (p=0.700 n=3) ²
ThroughputSingleLocale/gb-4                          3.264m ± ∞ ¹   3.434m ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/in-4                          2.882m ± ∞ ¹   3.074m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/jp-4                          2.943m ± ∞ ¹   3.114m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/kr-4                          2.809m ± ∞ ¹   3.034m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/nl-4                          3.117m ± ∞ ¹   3.377m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/us-4                          3.643m ± ∞ ¹   3.884m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputAllLocales-4                               14.78m ± ∞ ¹   14.76m ± ∞ ¹       ~ (p=1.000 n=3) ²
LatencyBySize/100B-4                                 204.1µ ± ∞ ¹   204.8µ ± ∞ ¹       ~ (p=0.100 n=3) ²
LatencyBySize/1KB-4                                  1.234m ± ∞ ¹   1.232m ± ∞ ¹       ~ (p=0.200 n=3) ²
LatencyBySize/10KB-4                                 12.94m ± ∞ ¹   12.84m ± ∞ ¹       ~ (p=0.100 n=3) ²
LatencyBySize/100KB-4                                138.7m ± ∞ ¹   138.0m ± ∞ ¹       ~ (p=0.100 n=3) ²
LatencyBySize/1MB-4                                   1.422 ± ∞ ¹    1.442 ± ∞ ¹       ~ (p=0.700 n=3) ²
Concurrency/goroutines-1-4                           1.278m ± ∞ ¹   1.281m ± ∞ ¹       ~ (p=1.000 n=3) ²
Concurrency/goroutines-2-4                           1.285m ± ∞ ¹   1.285m ± ∞ ¹       ~ (p=1.000 n=3) ²
Concurrency/goroutines-4-4                           1.287m ± ∞ ¹   1.287m ± ∞ ¹       ~ (p=0.700 n=3) ²
Concurrency/goroutines-8-4                           1.281m ± ∞ ¹   1.280m ± ∞ ¹       ~ (p=0.700 n=3) ²
Concurrency/goroutines-16-4                          1.283m ± ∞ ¹   1.278m ± ∞ ¹       ~ (p=0.200 n=3) ²
ColdStart-4                                          1.388m ± ∞ ¹   1.383m ± ∞ ¹       ~ (p=1.000 n=3) ²
WarmDetection-4                                      1.372m ± ∞ ¹   1.372m ± ∞ ¹       ~ (p=0.700 n=3) ²
geomean                                              128.9µ         130.0µ        +0.86%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                    │ bench-base-root/results.txt │   bench-head-root/results.txt    │
                                    │            B/op             │     B/op       vs base           │
DetectSmallText-4                                   15.43Ki ± ∞ ¹   15.48Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
DetectMediumText-4                                  42.57Ki ± ∞ ¹   41.91Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
DetectLargeText-4                                   812.4Ki ± ∞ ¹   850.2Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
DetectAllLocales-4                                  44.04Ki ± ∞ ¹   42.25Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
DetectSingleLocale-4                                21.65Ki ± ∞ ¹   21.52Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
RedactSmallText-4                                   15.44Ki ± ∞ ¹   15.51Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
RedactLargeText-4                                   805.5Ki ± ∞ ¹   823.2Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/au/tfn-4                                  336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/au/medicare-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/au/abn-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/au/phone-4                                336.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/au/postcode-4                           1.582Ki ± ∞ ¹   1.582Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/br/cpf-4                                  1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/br/phone-4                                338.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=0.100 n=3) ²
PerDetector/br/cep-4                                  0.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/br/pis-4                                  1.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/aadhaar-4                              520.0 ± ∞ ¹     521.0 ± ∞ ¹  ~ (p=0.700 n=3) ²
PerDetector/in/pan-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/phone-4                                1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/pincode-4                              0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/gstin-4                                0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/jp/phone-4                                528.0 ± ∞ ¹     528.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/jp/postal-4                               337.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=0.600 n=3) ²
PerDetector/jp/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/kr/phone-4                                336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/kr/postal-4                               336.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/kr/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/us/ssn-4                                  449.0 ± ∞ ¹     449.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/itin-4                                 304.0 ± ∞ ¹     304.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/ein-4                                  0.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/phone-4                                433.0 ± ∞ ¹     433.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/us/zip-4                                  336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/us/medicare-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/ca/phone-4                                306.0 ± ∞ ¹     304.0 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/ca/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/common/email-4                            337.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/common/creditcard-4                       361.0 ± ∞ ¹     360.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/common/ip-4                               652.0 ± ∞ ¹     651.0 ± ∞ ¹  ~ (p=0.800 n=3) ²
PerDetector/common/url-4                              337.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/common/iban-4                             537.0 ± ∞ ¹     539.0 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/common/mac-4                              337.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/fr/phone-4                                336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/fr/postal-4                               352.0 ± ∞ ¹     352.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/fr/id_card-4                              1.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/nl/phone-4                                2.000 ± ∞ ¹     2.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/nl/postal-4                               0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/nl/id_document-4                          1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/de/phone-4                                529.0 ± ∞ ¹     529.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/de/plz-4                                  336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/de/id_card-4                              0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/eu/vat-4                                  2.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/phone-4                                0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/postal-4                               0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/gb/utr-4                                  2.000 ± ∞ ¹     2.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/gb/phone-4                                0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
ThroughputSingleLocale/au-4                         683.7Ki ± ∞ ¹   685.8Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/br-4                         472.9Ki ± ∞ ¹   472.9Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
ThroughputSingleLocale/ca-4                         472.8Ki ± ∞ ¹   475.7Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/cn-4                         469.5Ki ± ∞ ¹   466.5Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/common-4                     471.7Ki ± ∞ ¹   470.3Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
ThroughputSingleLocale/de-4                         616.1Ki ± ∞ ¹   615.8Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
ThroughputSingleLocale/eu-4                         466.5Ki ± ∞ ¹   464.1Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/fr-4                         540.0Ki ± ∞ ¹   543.8Ki ± ∞ ¹  ~ (p=0.200 n=3) ²
ThroughputSingleLocale/gb-4                         467.8Ki ± ∞ ¹   469.1Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/in-4                         480.7Ki ± ∞ ¹   480.6Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
ThroughputSingleLocale/jp-4                         657.4Ki ± ∞ ¹   659.6Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
ThroughputSingleLocale/kr-4                         548.2Ki ± ∞ ¹   544.0Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
ThroughputSingleLocale/nl-4                         470.7Ki ± ∞ ¹   472.2Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
ThroughputSingleLocale/us-4                         651.2Ki ± ∞ ¹   656.3Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
ThroughputAllLocales-4                              863.0Ki ± ∞ ¹   867.8Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
LatencyBySize/100B-4                                13.05Ki ± ∞ ¹   13.04Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
LatencyBySize/1KB-4                                 24.82Ki ± ∞ ¹   24.05Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
LatencyBySize/10KB-4                                101.4Ki ± ∞ ¹   103.1Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
LatencyBySize/100KB-4                               1.350Mi ± ∞ ¹   1.345Mi ± ∞ ¹  ~ (p=0.200 n=3) ²
LatencyBySize/1MB-4                                 83.17Mi ± ∞ ¹   83.27Mi ± ∞ ¹  ~ (p=0.700 n=3) ²
Concurrency/goroutines-1-4                          42.77Ki ± ∞ ¹   43.05Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
Concurrency/goroutines-2-4                          42.64Ki ± ∞ ¹   44.02Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
Concurrency/goroutines-4-4                          46.44Ki ± ∞ ¹   49.76Ki ± ∞ ¹  ~ (p=0.200 n=3) ²
Concurrency/goroutines-8-4                          43.78Ki ± ∞ ¹   46.61Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
Concurrency/goroutines-16-4                         46.15Ki ± ∞ ¹   45.48Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
ColdStart-4                                         50.96Ki ± ∞ ¹   52.78Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
WarmDetection-4                                     45.43Ki ± ∞ ¹   42.13Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
geomean                                                         ⁴                  ?               ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal
⁴ summaries must be >0 to compute geomean

                                    │ bench-base-root/results.txt │     bench-head-root/results.txt      │
                                    │          allocs/op          │  allocs/op    vs base                │
DetectSmallText-4                                     178.0 ± ∞ ¹    178.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DetectMediumText-4                                    302.0 ± ∞ ¹    305.0 ± ∞ ¹       ~ (p=0.200 n=3) ³
DetectLargeText-4                                    1.300k ± ∞ ¹   1.300k ± ∞ ¹       ~ (p=1.000 n=3) ³
DetectAllLocales-4                                    305.0 ± ∞ ¹    304.0 ± ∞ ¹       ~ (p=0.700 n=3) ³
DetectSingleLocale-4                                  192.0 ± ∞ ¹    192.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
RedactSmallText-4                                     178.0 ± ∞ ¹    178.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
RedactLargeText-4                                    1.298k ± ∞ ¹   1.301k ± ∞ ¹       ~ (p=0.700 n=3) ³
PerDetector/au/tfn-4                                  5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/medicare-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/abn-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/postcode-4                             12.00 ± ∞ ¹    12.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cpf-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cep-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/pis-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/aadhaar-4                              8.000 ± ∞ ¹    8.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/pan-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/pincode-4                              0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/gstin-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/phone-4                                5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/postal-4                               3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/postal-4                               3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/ssn-4                                  4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/itin-4                                 2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/ein-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/phone-4                                4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/zip-4                                  3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/medicare-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/email-4                            3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/creditcard-4                       5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/ip-4                               7.000 ± ∞ ¹    7.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/url-4                              3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/iban-4                             11.00 ± ∞ ¹    11.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/mac-4                              3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/postal-4                               3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/postal-4                               0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/id_document-4                          0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/phone-4                                5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/plz-4                                  3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/id_card-4                              0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/postal-4                               0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/utr-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/au-4                           864.0 ± ∞ ¹    870.0 ± ∞ ¹       ~ (p=0.200 n=3) ³
ThroughputSingleLocale/br-4                           632.0 ± ∞ ¹    632.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
ThroughputSingleLocale/ca-4                           634.0 ± ∞ ¹    639.0 ± ∞ ¹       ~ (p=0.400 n=3) ³
ThroughputSingleLocale/cn-4                           615.0 ± ∞ ¹    612.0 ± ∞ ¹       ~ (p=0.300 n=3) ³
ThroughputSingleLocale/common-4                       598.0 ± ∞ ¹    597.0 ± ∞ ¹       ~ (p=0.800 n=3) ³
ThroughputSingleLocale/de-4                           746.0 ± ∞ ¹    746.0 ± ∞ ¹       ~ (p=0.800 n=3) ³
ThroughputSingleLocale/eu-4                           588.0 ± ∞ ¹    582.0 ± ∞ ¹       ~ (p=0.600 n=3) ³
ThroughputSingleLocale/fr-4                           686.0 ± ∞ ¹    688.0 ± ∞ ¹       ~ (p=0.700 n=3) ³
ThroughputSingleLocale/gb-4                           618.0 ± ∞ ¹    621.0 ± ∞ ¹       ~ (p=0.100 n=3) ³
ThroughputSingleLocale/in-4                           694.0 ± ∞ ¹    694.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
ThroughputSingleLocale/jp-4                           776.0 ± ∞ ¹    779.0 ± ∞ ¹       ~ (p=0.400 n=3) ³
ThroughputSingleLocale/kr-4                           681.0 ± ∞ ¹    679.0 ± ∞ ¹       ~ (p=0.500 n=3) ³
ThroughputSingleLocale/nl-4                           611.0 ± ∞ ¹    614.0 ± ∞ ¹       ~ (p=0.400 n=3) ³
ThroughputSingleLocale/us-4                           777.0 ± ∞ ¹    785.0 ± ∞ ¹       ~ (p=0.100 n=3) ³
ThroughputAllLocales-4                               1.326k ± ∞ ¹   1.330k ± ∞ ¹       ~ (p=0.700 n=3) ³
LatencyBySize/100B-4                                  155.0 ± ∞ ¹    155.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
LatencyBySize/1KB-4                                   204.0 ± ∞ ¹    202.0 ± ∞ ¹       ~ (p=0.100 n=3) ³
LatencyBySize/10KB-4                                  257.0 ± ∞ ¹    259.0 ± ∞ ¹       ~ (p=0.900 n=3) ³
LatencyBySize/100KB-4                                 562.0 ± ∞ ¹    543.0 ± ∞ ¹       ~ (p=0.700 n=3) ³
LatencyBySize/1MB-4                                  2.717k ± ∞ ¹   3.062k ± ∞ ¹       ~ (p=0.400 n=3) ³
Concurrency/goroutines-1-4                            303.0 ± ∞ ¹    304.0 ± ∞ ¹       ~ (p=0.700 n=3) ³
Concurrency/goroutines-2-4                            307.0 ± ∞ ¹    305.0 ± ∞ ¹       ~ (p=0.600 n=3) ³
Concurrency/goroutines-4-4                            304.0 ± ∞ ¹    308.0 ± ∞ ¹       ~ (p=0.100 n=3) ³
Concurrency/goroutines-8-4                            304.0 ± ∞ ¹    307.0 ± ∞ ¹       ~ (p=0.400 n=3) ³
Concurrency/goroutines-16-4                           303.0 ± ∞ ¹    306.0 ± ∞ ¹       ~ (p=0.100 n=3) ³
ColdStart-4                                           338.0 ± ∞ ¹    339.0 ± ∞ ¹       ~ (p=0.500 n=3) ³
WarmDetection-4                                       304.0 ± ∞ ¹    305.0 ± ∞ ¹       ~ (p=0.800 n=3) ³
geomean                                                         ⁴                 +0.15%               ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean

                                │ bench-base-root/results.txt │      bench-head-root/results.txt      │
                                │             B/s             │      B/s       vs base                │
ThroughputSingleLocale/au-4                     3.128Mi ± ∞ ¹   3.138Mi ± ∞ ¹       ~ (p=0.500 n=3) ²
ThroughputSingleLocale/br-4                     2.651Mi ± ∞ ¹   2.661Mi ± ∞ ¹       ~ (p=0.300 n=3) ²
ThroughputSingleLocale/ca-4                     3.366Mi ± ∞ ¹   3.405Mi ± ∞ ¹       ~ (p=0.500 n=3) ²
ThroughputSingleLocale/cn-4                     3.519Mi ± ∞ ¹   3.433Mi ± ∞ ¹       ~ (p=0.800 n=3) ²
ThroughputSingleLocale/common-4                 4.377Mi ± ∞ ¹   4.425Mi ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/de-4                     2.966Mi ± ∞ ¹   2.985Mi ± ∞ ¹       ~ (p=0.600 n=3) ²
ThroughputSingleLocale/eu-4                     3.691Mi ± ∞ ¹   3.710Mi ± ∞ ¹       ~ (p=0.400 n=3) ²
ThroughputSingleLocale/fr-4                     3.214Mi ± ∞ ¹   3.271Mi ± ∞ ¹       ~ (p=0.600 n=3) ²
ThroughputSingleLocale/gb-4                     3.033Mi ± ∞ ¹   2.890Mi ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/in-4                     3.443Mi ± ∞ ¹   3.223Mi ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/jp-4                     3.366Mi ± ∞ ¹   3.185Mi ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/kr-4                     3.529Mi ± ∞ ¹   3.262Mi ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/nl-4                     3.176Mi ± ∞ ¹   2.937Mi ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/us-4                     2.718Mi ± ∞ ¹   2.556Mi ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputAllLocales-4                          683.6Ki ± ∞ ¹   683.6Ki ± ∞ ¹       ~ (p=1.000 n=3) ²
LatencyBySize/100B-4                            478.5Ki ± ∞ ¹   478.5Ki ± ∞ ¹       ~ (p=1.000 n=3) ³
LatencyBySize/1KB-4                             810.5Ki ± ∞ ¹   810.5Ki ± ∞ ¹       ~ (p=1.000 n=3) ³
LatencyBySize/10KB-4                            771.5Ki ± ∞ ¹   781.2Ki ± ∞ ¹       ~ (p=0.100 n=3) ²
LatencyBySize/100KB-4                           722.7Ki ± ∞ ¹   722.7Ki ± ∞ ¹       ~ (p=1.000 n=3) ³
LatencyBySize/1MB-4                             722.7Ki ± ∞ ¹   712.9Ki ± ∞ ¹       ~ (p=0.400 n=3) ²
geomean                                         2.036Mi         2.000Mi        -1.76%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal


Generated by CI benchmark comparison

@github-actions

Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

Summary

Benchmark Status
🔍 Detect small (100B) ⚪ baseline
🔍 Detect medium (1KB) ⚪ baseline
🔍 Detect large (10KB) ⚪ baseline
🌍 All locales (1KB) ⚪ baseline
🏷️ Single locale (1KB) ⚪ baseline
✂️ Redact small (100B) ⚪ baseline
✂️ Redact large (10KB) ⚪ baseline
⚡ Throughput (all locales) ⚪ baseline
🧊 Cold start ⚪ baseline
🔥 Warm detection ⚪ baseline
⚡ Per-locale throughput (14 locales)
Locale Status
au ⚪ baseline
br ⚪ baseline
ca ⚪ baseline
cn ⚪ baseline
common ⚪ baseline
de ⚪ baseline
eu ⚪ baseline
fr ⚪ baseline
gb ⚪ baseline
in ⚪ baseline
jp ⚪ baseline
kr ⚪ baseline
nl ⚪ baseline
us ⚪ baseline
📊 Per-detector breakdown (70 detectors)
Detector Status
eu/passport_mrz ⚪ baseline
eu/vat ⚪ baseline
us/ssn ⚪ baseline
us/itin ⚪ baseline
us/ein ⚪ baseline
us/phone ⚪ baseline
us/zip ⚪ baseline
us/passport ⚪ baseline
us/medicare ⚪ baseline
ca/sin ⚪ baseline
ca/phone ⚪ baseline
ca/postal_code ⚪ baseline
ca/passport ⚪ baseline
cn/resident_id ⚪ baseline
cn/phone ⚪ baseline
cn/postal ⚪ baseline
cn/passport ⚪ baseline
cn/uscc ⚪ baseline
jp/my_number ⚪ baseline
jp/corporate_number ⚪ baseline
jp/phone ⚪ baseline
jp/postal ⚪ baseline
jp/passport ⚪ baseline
nl/bsn ⚪ baseline
nl/phone ⚪ baseline
nl/postal ⚪ baseline
nl/kvk ⚪ baseline
nl/id_document ⚪ baseline
common/email ⚪ baseline
common/creditcard ⚪ baseline
common/ip ⚪ baseline
common/url ⚪ baseline
common/iban ⚪ baseline
common/mac ⚪ baseline
fr/nir ⚪ baseline
fr/nif ⚪ baseline
fr/phone ⚪ baseline
fr/postal ⚪ baseline
fr/id_card ⚪ baseline
in/aadhaar ⚪ baseline
in/pan ⚪ baseline
in/phone ⚪ baseline
in/pincode ⚪ baseline
in/passport ⚪ baseline
in/gstin ⚪ baseline
br/cpf ⚪ baseline
br/cnpj ⚪ baseline
br/phone ⚪ baseline
br/cep ⚪ baseline
br/pis ⚪ baseline
br/cnh ⚪ baseline
gb/nin ⚪ baseline
gb/nhs ⚪ baseline
gb/utr ⚪ baseline
gb/phone ⚪ baseline
gb/postcode ⚪ baseline
kr/rrn ⚪ baseline
kr/phone ⚪ baseline
kr/postal ⚪ baseline
kr/passport ⚪ baseline
au/tfn ⚪ baseline
au/medicare ⚪ baseline
au/abn ⚪ baseline
au/phone ⚪ baseline
au/postcode ⚪ baseline
de/steuer_id ⚪ baseline
de/sozialversicherung ⚪ baseline
de/phone ⚪ baseline
de/plz ⚪ baseline
de/id_card ⚪ baseline
🔧 Other benchmarks (11)
Benchmark Status
LatencyBySize/100B ⚪ baseline
LatencyBySize/1KB ⚪ baseline
LatencyBySize/10KB ⚪ baseline
LatencyBySize/100KB ⚪ baseline
LatencyBySize/1MB ⚪ baseline
Concurrency/goroutines-1 ⚪ baseline
Concurrency/goroutines-2 ⚪ baseline
Concurrency/goroutines-4 ⚪ baseline
Concurrency/goroutines-8 ⚪ baseline
Concurrency/goroutines-16 ⚪ baseline
geomean 🟡 +0.17% slower
📋 Raw benchstat output (root)
goos: linux
goarch: amd64
pkg: github.com/taoq-ai/wuming
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ bench-base-root/results.txt │      bench-head-root/results.txt      │
                                    │           sec/op            │    sec/op      vs base                │
DetectSmallText-4                                    207.9µ ± ∞ ¹    210.2µ ± ∞ ¹       ~ (p=0.100 n=3) ²
DetectMediumText-4                                   1.349m ± ∞ ¹    1.370m ± ∞ ¹       ~ (p=0.400 n=3) ²
DetectLargeText-4                                    14.64m ± ∞ ¹    14.59m ± ∞ ¹       ~ (p=0.700 n=3) ²
DetectAllLocales-4                                   1.350m ± ∞ ¹    1.356m ± ∞ ¹       ~ (p=0.400 n=3) ²
DetectSingleLocale-4                                 352.1µ ± ∞ ¹    355.7µ ± ∞ ¹       ~ (p=0.700 n=3) ²
RedactSmallText-4                                    208.4µ ± ∞ ¹    209.4µ ± ∞ ¹       ~ (p=0.700 n=3) ²
RedactLargeText-4                                    14.65m ± ∞ ¹    14.63m ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/eu/passport_mrz-4                        354.2n ± ∞ ¹    354.5n ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/eu/vat-4                                 104.7µ ± ∞ ¹    107.7µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/us/ssn-4                                 26.11µ ± ∞ ¹    26.19µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/itin-4                                24.66µ ± ∞ ¹    24.41µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/us/ein-4                                 63.36µ ± ∞ ¹    60.80µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/us/phone-4                               56.77µ ± ∞ ¹    56.79µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/zip-4                                 23.05µ ± ∞ ¹    23.09µ ± ∞ ¹       ~ (p=0.300 n=3) ²
PerDetector/us/passport-4                            28.34µ ± ∞ ¹    28.44µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/medicare-4                            22.79µ ± ∞ ¹    22.83µ ± ∞ ¹       ~ (p=0.300 n=3) ²
PerDetector/ca/sin-4                                 26.65µ ± ∞ ¹    26.45µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/ca/phone-4                               65.63µ ± ∞ ¹    65.43µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/ca/postal_code-4                         24.21µ ± ∞ ¹    24.41µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/ca/passport-4                            22.72µ ± ∞ ¹    22.89µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/cn/resident_id-4                         22.91µ ± ∞ ¹    22.95µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/cn/phone-4                               26.73µ ± ∞ ¹    26.74µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/cn/postal-4                              22.83µ ± ∞ ¹    22.81µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/passport-4                            31.01µ ± ∞ ¹    30.91µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/cn/uscc-4                                24.68µ ± ∞ ¹    24.66µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/my_number-4                           23.13µ ± ∞ ¹    23.19µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/jp/corporate_number-4                    22.96µ ± ∞ ¹    22.95µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/jp/phone-4                               27.47µ ± ∞ ¹    27.53µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/postal-4                              35.92µ ± ∞ ¹    35.89µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/passport-4                            22.74µ ± ∞ ¹    22.82µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/nl/bsn-4                                 23.37µ ± ∞ ¹    23.37µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/phone-4                               66.42µ ± ∞ ¹    66.13µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/nl/postal-4                              23.09µ ± ∞ ¹    23.02µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/nl/kvk-4                                 22.96µ ± ∞ ¹    22.92µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/nl/id_document-4                         45.79µ ± ∞ ¹    45.97µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/common/email-4                           32.77µ ± ∞ ¹    32.72µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/creditcard-4                      25.29µ ± ∞ ¹    25.17µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/common/ip-4                              134.7µ ± ∞ ¹    134.3µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/common/url-4                             988.4n ± ∞ ¹   1014.0n ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/common/iban-4                            23.79µ ± ∞ ¹    23.80µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/mac-4                             45.61µ ± ∞ ¹    45.46µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/fr/nir-4                                 26.97µ ± ∞ ¹    26.84µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/fr/nif-4                                 23.41µ ± ∞ ¹    23.39µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/phone-4                               27.46µ ± ∞ ¹    27.68µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/fr/postal-4                              26.15µ ± ∞ ¹    25.96µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/fr/id_card-4                             46.66µ ± ∞ ¹    46.79µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/in/aadhaar-4                             23.11µ ± ∞ ¹    23.09µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/in/pan-4                                 22.69µ ± ∞ ¹    22.67µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/in/phone-4                               43.68µ ± ∞ ¹    43.74µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/in/pincode-4                             22.87µ ± ∞ ¹    23.02µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/in/passport-4                            22.58µ ± ∞ ¹    22.64µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/in/gstin-4                               22.82µ ± ∞ ¹    22.82µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/br/cpf-4                                 50.02µ ± ∞ ¹    49.46µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/br/cnpj-4                                43.49µ ± ∞ ¹    43.40µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/br/phone-4                               88.71µ ± ∞ ¹    88.85µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/br/cep-4                                 43.77µ ± ∞ ¹    43.75µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/br/pis-4                                 44.02µ ± ∞ ¹    43.73µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/br/cnh-4                                 23.53µ ± ∞ ¹    22.94µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/gb/nin-4                                 33.44µ ± ∞ ¹    33.31µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/nhs-4                                 26.66µ ± ∞ ¹    26.39µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/gb/utr-4                                 83.10µ ± ∞ ¹    83.23µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/phone-4                               27.18µ ± ∞ ¹    27.20µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/gb/postcode-4                            27.21µ ± ∞ ¹    27.11µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/kr/rrn-4                                 26.63µ ± ∞ ¹    26.45µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/phone-4                               27.52µ ± ∞ ¹    27.53µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/kr/postal-4                              23.15µ ± ∞ ¹    23.21µ ± ∞ ¹       ~ (p=0.100 n=3) ²
PerDetector/kr/passport-4                            22.59µ ± ∞ ¹    22.59µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/au/tfn-4                                 29.29µ ± ∞ ¹    29.57µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/au/medicare-4                            30.32µ ± ∞ ¹    30.79µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PerDetector/au/abn-4                                 30.40µ ± ∞ ¹    30.73µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/au/phone-4                               52.29µ ± ∞ ¹    51.65µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/au/postcode-4                            23.82µ ± ∞ ¹    23.90µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/de/steuer_id-4                           22.95µ ± ∞ ¹    23.00µ ± ∞ ¹       ~ (p=0.700 n=3) ²
PerDetector/de/sozialversicherung-4                  23.27µ ± ∞ ¹    23.26µ ± ∞ ¹       ~ (p=0.500 n=3) ²
PerDetector/de/phone-4                               51.54µ ± ∞ ¹    52.37µ ± ∞ ¹       ~ (p=0.200 n=3) ²
PerDetector/de/plz-4                                 73.44µ ± ∞ ¹    73.38µ ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/id_card-4                             23.92µ ± ∞ ¹    23.93µ ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/au-4                          3.126m ± ∞ ¹    3.198m ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/br-4                          3.694m ± ∞ ¹    3.699m ± ∞ ¹       ~ (p=0.700 n=3) ²
ThroughputSingleLocale/ca-4                          2.904m ± ∞ ¹    2.947m ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/cn-4                          2.789m ± ∞ ¹    2.804m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/common-4                      2.230m ± ∞ ¹    2.240m ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/de-4                          3.205m ± ∞ ¹    3.295m ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/eu-4                          2.640m ± ∞ ¹    2.670m ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/fr-4                          2.951m ± ∞ ¹    3.023m ± ∞ ¹       ~ (p=0.700 n=3) ²
ThroughputSingleLocale/gb-4                          3.281m ± ∞ ¹    3.251m ± ∞ ¹       ~ (p=0.400 n=3) ²
ThroughputSingleLocale/in-4                          2.832m ± ∞ ¹    2.886m ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/jp-4                          2.956m ± ∞ ¹    2.970m ± ∞ ¹       ~ (p=0.700 n=3) ²
ThroughputSingleLocale/kr-4                          2.793m ± ∞ ¹    2.788m ± ∞ ¹       ~ (p=0.700 n=3) ²
ThroughputSingleLocale/nl-4                          3.071m ± ∞ ¹    3.008m ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/us-4                          3.564m ± ∞ ¹    3.572m ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputAllLocales-4                               14.65m ± ∞ ¹    14.66m ± ∞ ¹       ~ (p=1.000 n=3) ²
LatencyBySize/100B-4                                 201.5µ ± ∞ ¹    202.3µ ± ∞ ¹       ~ (p=0.200 n=3) ²
LatencyBySize/1KB-4                                  1.222m ± ∞ ¹    1.225m ± ∞ ¹       ~ (p=0.100 n=3) ²
LatencyBySize/10KB-4                                 12.90m ± ∞ ¹    12.90m ± ∞ ¹       ~ (p=1.000 n=3) ²
LatencyBySize/100KB-4                                138.4m ± ∞ ¹    139.4m ± ∞ ¹       ~ (p=0.100 n=3) ²
LatencyBySize/1MB-4                                   1.414 ± ∞ ¹     1.420 ± ∞ ¹       ~ (p=0.100 n=3) ²
Concurrency/goroutines-1-4                           1.274m ± ∞ ¹    1.283m ± ∞ ¹       ~ (p=0.100 n=3) ²
Concurrency/goroutines-2-4                           1.279m ± ∞ ¹    1.284m ± ∞ ¹       ~ (p=0.100 n=3) ²
Concurrency/goroutines-4-4                           1.286m ± ∞ ¹    1.289m ± ∞ ¹       ~ (p=0.200 n=3) ²
Concurrency/goroutines-8-4                           1.280m ± ∞ ¹    1.280m ± ∞ ¹       ~ (p=1.000 n=3) ²
Concurrency/goroutines-16-4                          1.276m ± ∞ ¹    1.280m ± ∞ ¹       ~ (p=0.200 n=3) ²
ColdStart-4                                          1.371m ± ∞ ¹    1.376m ± ∞ ¹       ~ (p=0.400 n=3) ²
WarmDetection-4                                      1.354m ± ∞ ¹    1.352m ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                              128.3µ          128.5µ        +0.17%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                    │ bench-base-root/results.txt │   bench-head-root/results.txt    │
                                    │            B/op             │     B/op       vs base           │
DetectSmallText-4                                   15.40Ki ± ∞ ¹   15.46Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
DetectMediumText-4                                  42.30Ki ± ∞ ¹   42.43Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
DetectLargeText-4                                   872.7Ki ± ∞ ¹   865.8Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
DetectAllLocales-4                                  41.62Ki ± ∞ ¹   44.34Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
DetectSingleLocale-4                                21.68Ki ± ∞ ¹   21.72Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
RedactSmallText-4                                   15.48Ki ± ∞ ¹   15.46Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
RedactLargeText-4                                   856.3Ki ± ∞ ¹   826.7Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/eu/vat-4                                  2.000 ± ∞ ¹     2.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/ssn-4                                  448.0 ± ∞ ¹     449.0 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/us/itin-4                                 304.0 ± ∞ ¹     304.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/ein-4                                  1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/phone-4                                433.0 ± ∞ ¹     433.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/zip-4                                  336.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/us/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/us/medicare-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/ca/phone-4                                306.0 ± ∞ ¹     306.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/ca/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/phone-4                                0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/postal-4                               0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/jp/phone-4                                528.0 ± ∞ ¹     528.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/jp/postal-4                               337.0 ± ∞ ¹     338.0 ± ∞ ¹  ~ (p=0.700 n=3) ²
PerDetector/jp/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/nl/phone-4                                2.000 ± ∞ ¹     2.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/nl/postal-4                               0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/nl/id_document-4                          1.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/common/email-4                            337.0 ± ∞ ¹     338.0 ± ∞ ¹  ~ (p=0.700 n=3) ²
PerDetector/common/creditcard-4                       360.0 ± ∞ ¹     360.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/common/ip-4                               644.0 ± ∞ ¹     651.0 ± ∞ ¹  ~ (p=0.500 n=3) ²
PerDetector/common/url-4                              337.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/common/iban-4                             537.0 ± ∞ ¹     539.0 ± ∞ ¹  ~ (p=0.200 n=3) ²
PerDetector/common/mac-4                              336.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/fr/phone-4                                336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/fr/postal-4                               353.0 ± ∞ ¹     353.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/fr/id_card-4                              1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/in/aadhaar-4                              520.0 ± ∞ ¹     520.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/in/pan-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/phone-4                                0.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/in/pincode-4                              0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/in/gstin-4                                0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/br/cpf-4                                  1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/br/cnpj-4                                 1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/br/phone-4                                338.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/br/cep-4                                  0.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/br/pis-4                                  1.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹     1.000 ± ∞ ¹  ~ (p=0.400 n=3) ²
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/gb/utr-4                                  2.000 ± ∞ ¹     2.000 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/gb/phone-4                                0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/kr/phone-4                                336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/kr/postal-4                               337.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/kr/passport-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/au/tfn-4                                  336.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/au/medicare-4                             0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/au/abn-4                                  0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/au/phone-4                                337.0 ± ∞ ¹     337.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/au/postcode-4                           1.583Ki ± ∞ ¹   1.584Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
PerDetector/de/phone-4                                529.0 ± ∞ ¹     529.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/de/plz-4                                  338.0 ± ∞ ¹     336.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
PerDetector/de/id_card-4                              0.000 ± ∞ ¹     0.000 ± ∞ ¹  ~ (p=1.000 n=3) ³
ThroughputSingleLocale/au-4                         686.8Ki ± ∞ ¹   697.5Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
ThroughputSingleLocale/br-4                         473.0Ki ± ∞ ¹   473.5Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/ca-4                         475.5Ki ± ∞ ¹   472.2Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
ThroughputSingleLocale/cn-4                         471.0Ki ± ∞ ¹   471.0Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
ThroughputSingleLocale/common-4                     470.9Ki ± ∞ ¹   472.3Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
ThroughputSingleLocale/de-4                         606.3Ki ± ∞ ¹   616.4Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
ThroughputSingleLocale/eu-4                         463.6Ki ± ∞ ¹   468.4Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/fr-4                         543.1Ki ± ∞ ¹   544.2Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
ThroughputSingleLocale/gb-4                         466.5Ki ± ∞ ¹   469.0Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
ThroughputSingleLocale/in-4                         481.3Ki ± ∞ ¹   481.4Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
ThroughputSingleLocale/jp-4                         663.6Ki ± ∞ ¹   655.4Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputSingleLocale/kr-4                         548.7Ki ± ∞ ¹   547.1Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
ThroughputSingleLocale/nl-4                         473.6Ki ± ∞ ¹   473.0Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
ThroughputSingleLocale/us-4                         651.6Ki ± ∞ ¹   653.5Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ThroughputAllLocales-4                              860.7Ki ± ∞ ¹   840.2Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
LatencyBySize/100B-4                                13.11Ki ± ∞ ¹   12.98Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
LatencyBySize/1KB-4                                 24.80Ki ± ∞ ¹   23.34Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
LatencyBySize/10KB-4                                101.1Ki ± ∞ ¹   100.7Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
LatencyBySize/100KB-4                               1.343Mi ± ∞ ¹   1.350Mi ± ∞ ¹  ~ (p=0.700 n=3) ²
LatencyBySize/1MB-4                                 83.22Mi ± ∞ ¹   83.44Mi ± ∞ ¹  ~ (p=0.100 n=3) ²
Concurrency/goroutines-1-4                          43.87Ki ± ∞ ¹   44.75Ki ± ∞ ¹  ~ (p=1.000 n=3) ²
Concurrency/goroutines-2-4                          44.28Ki ± ∞ ¹   41.86Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
Concurrency/goroutines-4-4                          47.70Ki ± ∞ ¹   48.97Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
Concurrency/goroutines-8-4                          45.42Ki ± ∞ ¹   44.78Ki ± ∞ ¹  ~ (p=0.700 n=3) ²
Concurrency/goroutines-16-4                         43.60Ki ± ∞ ¹   44.55Ki ± ∞ ¹  ~ (p=0.400 n=3) ²
ColdStart-4                                         49.95Ki ± ∞ ¹   51.30Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
WarmDetection-4                                     41.60Ki ± ∞ ¹   44.34Ki ± ∞ ¹  ~ (p=0.100 n=3) ²
geomean                                                         ⁴                  ?               ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal
⁴ summaries must be >0 to compute geomean

                                    │ bench-base-root/results.txt │     bench-head-root/results.txt      │
                                    │          allocs/op          │  allocs/op    vs base                │
DetectSmallText-4                                     178.0 ± ∞ ¹    178.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DetectMediumText-4                                    305.0 ± ∞ ¹    305.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
DetectLargeText-4                                    1.318k ± ∞ ¹   1.324k ± ∞ ¹       ~ (p=0.700 n=3) ³
DetectAllLocales-4                                    305.0 ± ∞ ¹    306.0 ± ∞ ¹       ~ (p=0.300 n=3) ³
DetectSingleLocale-4                                  192.0 ± ∞ ¹    192.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
RedactSmallText-4                                     178.0 ± ∞ ¹    178.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
RedactLargeText-4                                    1.317k ± ∞ ¹   1.298k ± ∞ ¹       ~ (p=0.700 n=3) ³
PerDetector/eu/passport_mrz-4                         0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/eu/vat-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/ssn-4                                  4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/itin-4                                 2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/ein-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/phone-4                                4.000 ± ∞ ¹    4.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/zip-4                                  3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/us/medicare-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/sin-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/postal_code-4                          0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/ca/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/resident_id-4                          0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/postal-4                               0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/cn/uscc-4                                 0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/my_number-4                            0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/corporate_number-4                     0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/phone-4                                5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/postal-4                               3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/jp/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/bsn-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/postal-4                               0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/kvk-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/nl/id_document-4                          0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/email-4                            3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/creditcard-4                       5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/ip-4                               7.000 ± ∞ ¹    7.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/url-4                              3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/iban-4                             11.00 ± ∞ ¹    11.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/common/mac-4                              3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/nir-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/nif-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/postal-4                               3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/fr/id_card-4                              0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/aadhaar-4                              8.000 ± ∞ ¹    8.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/pan-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/pincode-4                              0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/in/gstin-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cpf-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cnpj-4                                 0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cep-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/pis-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/br/cnh-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/nin-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/nhs-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/utr-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/phone-4                                0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/gb/postcode-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/rrn-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/postal-4                               3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/kr/passport-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/tfn-4                                  5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/medicare-4                             0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/abn-4                                  0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/phone-4                                3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/au/postcode-4                             12.00 ± ∞ ¹    12.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/steuer_id-4                            0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/sozialversicherung-4                   0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/phone-4                                5.000 ± ∞ ¹    5.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/plz-4                                  3.000 ± ∞ ¹    3.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
PerDetector/de/id_card-4                              0.000 ± ∞ ¹    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/au-4                           868.0 ± ∞ ¹    864.0 ± ∞ ¹       ~ (p=0.500 n=3) ³
ThroughputSingleLocale/br-4                           635.0 ± ∞ ¹    636.0 ± ∞ ¹       ~ (p=0.400 n=3) ³
ThroughputSingleLocale/ca-4                           640.0 ± ∞ ¹    636.0 ± ∞ ¹       ~ (p=0.900 n=3) ³
ThroughputSingleLocale/cn-4                           615.0 ± ∞ ¹    613.0 ± ∞ ¹       ~ (p=0.800 n=3) ³
ThroughputSingleLocale/common-4                       599.0 ± ∞ ¹    600.0 ± ∞ ¹       ~ (p=0.700 n=3) ³
ThroughputSingleLocale/de-4                           748.0 ± ∞ ¹    748.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
ThroughputSingleLocale/eu-4                           584.0 ± ∞ ¹    591.0 ± ∞ ¹       ~ (p=0.400 n=3) ³
ThroughputSingleLocale/fr-4                           684.0 ± ∞ ¹    690.0 ± ∞ ¹       ~ (p=0.200 n=3) ³
ThroughputSingleLocale/gb-4                           615.0 ± ∞ ¹    620.0 ± ∞ ¹       ~ (p=0.500 n=3) ³
ThroughputSingleLocale/in-4                           692.0 ± ∞ ¹    693.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
ThroughputSingleLocale/jp-4                           779.0 ± ∞ ¹    778.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
ThroughputSingleLocale/kr-4                           681.0 ± ∞ ¹    679.0 ± ∞ ¹       ~ (p=0.800 n=3) ³
ThroughputSingleLocale/nl-4                           615.0 ± ∞ ¹    614.0 ± ∞ ¹       ~ (p=0.800 n=3) ³
ThroughputSingleLocale/us-4                           775.0 ± ∞ ¹    783.0 ± ∞ ¹       ~ (p=0.300 n=3) ³
ThroughputAllLocales-4                               1.330k ± ∞ ¹   1.316k ± ∞ ¹       ~ (p=0.700 n=3) ³
LatencyBySize/100B-4                                  155.0 ± ∞ ¹    155.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
LatencyBySize/1KB-4                                   204.0 ± ∞ ¹    201.0 ± ∞ ¹       ~ (p=0.100 n=3) ³
LatencyBySize/10KB-4                                  254.0 ± ∞ ¹    258.0 ± ∞ ¹       ~ (p=0.800 n=3) ³
LatencyBySize/100KB-4                                 527.0 ± ∞ ¹    565.0 ± ∞ ¹       ~ (p=0.700 n=3) ³
LatencyBySize/1MB-4                                  2.965k ± ∞ ¹   3.620k ± ∞ ¹       ~ (p=0.100 n=3) ³
Concurrency/goroutines-1-4                            304.0 ± ∞ ¹    306.0 ± ∞ ¹       ~ (p=0.200 n=3) ³
Concurrency/goroutines-2-4                            307.0 ± ∞ ¹    306.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
Concurrency/goroutines-4-4                            308.0 ± ∞ ¹    309.0 ± ∞ ¹       ~ (p=0.500 n=3) ³
Concurrency/goroutines-8-4                            307.0 ± ∞ ¹    307.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
Concurrency/goroutines-16-4                           306.0 ± ∞ ¹    307.0 ± ∞ ¹       ~ (p=0.500 n=3) ³
ColdStart-4                                           337.0 ± ∞ ¹    338.0 ± ∞ ¹       ~ (p=0.300 n=3) ³
WarmDetection-4                                       303.0 ± ∞ ¹    307.0 ± ∞ ¹       ~ (p=0.100 n=3) ³
geomean                                                         ⁴                 +0.29%               ⁴
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05
⁴ summaries must be >0 to compute geomean

                                │ bench-base-root/results.txt │      bench-head-root/results.txt      │
                                │             B/s             │      B/s       vs base                │
ThroughputSingleLocale/au-4                     3.166Mi ± ∞ ¹   3.099Mi ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/br-4                     2.680Mi ± ∞ ¹   2.680Mi ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/ca-4                     3.414Mi ± ∞ ¹   3.366Mi ± ∞ ¹       ~ (p=0.400 n=3) ²
ThroughputSingleLocale/cn-4                     3.557Mi ± ∞ ¹   3.538Mi ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/common-4                 4.444Mi ± ∞ ¹   4.425Mi ± ∞ ¹       ~ (p=0.400 n=3) ²
ThroughputSingleLocale/de-4                     3.090Mi ± ∞ ¹   3.004Mi ± ∞ ¹       ~ (p=0.100 n=3) ²
ThroughputSingleLocale/eu-4                     3.748Mi ± ∞ ¹   3.710Mi ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/fr-4                     3.357Mi ± ∞ ¹   3.281Mi ± ∞ ¹       ~ (p=0.600 n=3) ²
ThroughputSingleLocale/gb-4                     3.023Mi ± ∞ ¹   3.052Mi ± ∞ ¹       ~ (p=0.400 n=3) ²
ThroughputSingleLocale/in-4                     3.500Mi ± ∞ ¹   3.433Mi ± ∞ ¹       ~ (p=0.200 n=3) ²
ThroughputSingleLocale/jp-4                     3.347Mi ± ∞ ¹   3.338Mi ± ∞ ¹       ~ (p=0.500 n=3) ²
ThroughputSingleLocale/kr-4                     3.548Mi ± ∞ ¹   3.557Mi ± ∞ ¹       ~ (p=0.800 n=3) ²
ThroughputSingleLocale/nl-4                     3.223Mi ± ∞ ¹   3.290Mi ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputSingleLocale/us-4                     2.785Mi ± ∞ ¹   2.775Mi ± ∞ ¹       ~ (p=1.000 n=3) ²
ThroughputAllLocales-4                          693.4Ki ± ∞ ¹   693.4Ki ± ∞ ¹       ~ (p=1.000 n=3) ³
LatencyBySize/100B-4                            488.3Ki ± ∞ ¹   478.5Ki ± ∞ ¹       ~ (p=0.400 n=3) ²
LatencyBySize/1KB-4                             820.3Ki ± ∞ ¹   820.3Ki ± ∞ ¹       ~ (p=1.000 n=3) ³
LatencyBySize/10KB-4                            771.5Ki ± ∞ ¹   771.5Ki ± ∞ ¹       ~ (p=1.000 n=3) ²
LatencyBySize/100KB-4                           722.7Ki ± ∞ ¹   712.9Ki ± ∞ ¹       ~ (p=0.100 n=3) ²
LatencyBySize/1MB-4                             722.7Ki ± ∞ ¹   722.7Ki ± ∞ ¹       ~ (p=1.000 n=3) ³
geomean                                         2.063Mi         2.049Mi        -0.66%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal


Generated by CI benchmark comparison

@leoneperdigao
leoneperdigao merged commit 94e869c into main Mar 20, 2026
13 checks passed
@leoneperdigao
leoneperdigao deleted the feat/88-consistent-redaction branch March 20, 2026 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: consistent redaction (same PII value maps to same replacement)

1 participant