Public Suffix List Engine
Overview
A focused implementation of the Public Suffix List (PSL). Bundles a reproducible, pinned PSL snapshot and implements the official prevailing-rule algorithm to answer public-suffix (eTLD) and registrable-domain (eTLD+1) queries. Distinguishes ICANN and PRIVATE rule sections, accepts Unicode and ASCII hostnames via 'punycoder' canonicalization, and supports an explicit, validated offline refresh path. The matcher is compiled with 'cpp11' and requires no external system library. Used as the PSL engine by the 'rurl' package.
- **Parsing the Public Suffix List is roughly 7x faster.**
parse_psl_lines()preallocated its rule columns but then wrote each row through a helper function, which made the columns referenced twice and copied all of them on every rule -- quadratic in the number of rules, defeating the preallocation it was paired with. The writes are now in place. On the bundled list (10,323 rules)read_psl_file()drops from 11.97s to 1.69s with byte-identical output, and the package's own test suite drops from 486s to 201s. No behavior changes (PSLR-ufhllfer). BugReportspoints athttps://gitlab.com/bart-turczynski/pslr/-/issues, the form R's CRAN incoming check requires for a gitlab.com tracker. GitLab now serves issues as work items: a browser following that link is redirected to/-/work_items, while a signed-out non-browser client gets a 404, on every project on the site (PSLR-cmkufiww).
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK6 OK2026-06-23
Documentation
- Help pages
- 16 (5 internal)includes a package overview page
- Examples that run
- 100%16 run in a plain check (2 of them under a condition)
- Exported functions with examples
- 100%
- Documented parameters
- 93%
- Return-value docs
- 100%
- Help pages citing references
- 0%
- Introduction to pslr HTML
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- not measured
- Median days to close, 50 most recently updated closed PRs
- not measured
- github.com/bart-turczynski/pslr · last recorded on 2026-09-13
Repository gitlab.com/bart-turczynski/pslr is linked, but repository-practices checks have not run for it yet. Checks are GitHub-only for now.
Dependencies
Installing pslr adds 4 packages (3 with compiled code, 2.8 MB of source tarballs). Heaviest: Rcpp 1.8 MB, punycoder 517 KB, cpp11 298 KB.
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 1.2.1Latest2026-09-14 · current release · diff ↗ ·
removed 1 export
psl_outdatedadded 4 exports
psl_diff, psl_reminder, psl_snapshots, psl_status - 1.1.1
- 1.0.12026-06-22
- RR 4.6.0 released · 2026-04-24
Package metadata
- First published
- 2026-06-22
- Total releases
- 3 / 1 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 4.1.0
- Download size
- 417 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("pslr")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-20, which the citation names so these numbers can be found later. More on citing and the projects behind them.