The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
punycoder (development
version)
Bug Fixes
puny_decode() (and the URL/domain decoders) now bound
label length in both strict and non-strict mode. A crafted oversized
xn-- label previously drove the fallback decoder into
quadratic time with unbounded allocation; oversized labels are now
rejected promptly (error in strict mode, NA in
non-strict).
New Features
- Strict decoding now enforces RFC 5891 canonical A-label form: a
decoded label must re-encode to itself. Non-canonical encodings
(e.g. uppercase payloads) are rejected in strict mode while non-strict
decoding stays lenient.
punycoder 1.0.0
New Features
- Initial release of punycoder package
- Core punycode encoding and decoding functions
(
puny_encode(), puny_decode())
- URL-aware processing functions (
url_encode(),
url_decode(), parse_url())
- Domain validation and utility functions (
is_punycode(),
is_idn(), validate_domain())
- Comprehensive test suite with RFC 3492 compliance testing
- High-performance C++ backend with Rcpp
- Vectorized operations for bulk processing
- Robust error handling and validation
- Complete documentation with vignettes
Package Structure
- CRAN-compliant package structure
- MIT license
- Comprehensive test coverage
- Performance optimizations
- Cross-platform compatibility (Windows, macOS, Linux)
Technical Implementation
- C++ backend using Rcpp for performance
- Placeholder implementation ready for libidn2 integration
- RFC 3492 compliance framework
- Extensive input validation
- Memory-efficient vectorized operations
Documentation
- Complete function documentation with examples
- Introductory vignette
- README with quick start guide
- Test vectors from RFC 3492 specification
Future Roadmap
- Integration with GNU libidn2 for production punycode
implementation
- Performance optimizations
- Additional URL manipulation utilities
- Integration examples with popular R packages
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.