The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.
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.
Health stats visible at Monitor.