punycoder: Unicode and Punycode Domain Name Processing

High-performance Unicode and Punycode processing for internationalized domain names. The 'puny_encode()' / 'puny_decode()' helpers are a low-level, RFC 3492 compliant Punycode codec for domain labels (the 'xn–' ASCII-Compatible Encoding of RFC 5890/5891); they perform the raw transform plus letter-digit-hyphen checks and do not apply Unicode IDNA normalization. 'host_normalize()' is the Unicode Technical Standard #46 host-normalization entry point, mapping a host name to a canonical lowercase ASCII comparison form (non-transitional profile, pinned Unicode version). The 'url_encode()' / 'url_decode()' / 'parse_url()' helpers do best-effort host extraction and rewriting in URL-shaped strings and are deliberately not RFC 3986 / WHATWG URL parsers or canonicalizers; they are deprecated in favor of dedicated URL packages. Aimed at host normalization and data analysis workflows. Used as the Punycode and IDNA engine by the 'pslr' and 'rurl' packages.

Version: 1.2.1
Depends: R (≥ 3.5.0)
Imports: Rcpp (≥ 1.0.0)
LinkingTo: Rcpp
Suggests: testthat (≥ 3.0.0), knitr, rmarkdown, oysteR, rosv
Published: 2026-07-19
DOI: 10.32614/CRAN.package.punycoder
Author: Bart Turczynski ORCID iD [aut, cre]
Maintainer: Bart Turczynski <bartek at turczynski.pl>
BugReports: https://github.com/bart-turczynski/punycoder/issues
License: MIT + file LICENSE
URL: https://bart-turczynski.github.io/punycoder/, https://github.com/bart-turczynski/punycoder, https://bart-turczynski.r-universe.dev/punycoder, https://CRAN.R-project.org/package=punycoder
NeedsCompilation: yes
SystemRequirements: GNU libidn2 (optional, for native punycode backend)
Language: en-US
Citation: punycoder citation info
Materials: README, NEWS
CRAN checks: punycoder results

Documentation:

Reference manual: punycoder.html , punycoder.pdf
Vignettes: Introduction to punycoder (source, R code)

Downloads:

Package source: punycoder_1.2.1.tar.gz
Windows binaries: r-devel: punycoder_1.1.0.zip, r-release: punycoder_1.1.0.zip, r-oldrel: punycoder_1.1.0.zip
macOS binaries: r-release (arm64): punycoder_1.2.1.tgz, r-oldrel (arm64): punycoder_1.2.1.tgz, r-release (x86_64): punycoder_1.1.0.tgz, r-oldrel (x86_64): punycoder_1.1.0.tgz
Old sources: punycoder archive

Reverse dependencies:

Reverse imports: pslr, rurl

Linking:

Please use the canonical form https://CRAN.R-project.org/package=punycoder to link to this page.