punyencode
This repository has been archived in favor of punycode.
A simple CLI tool to encode a string to a punycode encoded string
Usage
Encoding a single string, meaning conversion from human readable text to punycode
punyencode blåbærgrød
Will emit
xn--blbrgrd-fxak7p
As an alternative to provided arguments, you can pipe text into punyencode
echo blåbærgrød | punydencode
Will emit
xn--blbrgrd-fxak7p
Installation
Installation is easy using Go
go install github.com/jonasbn/punyencode@latest
If you want a particular version, please see Go Modules Reference
Description
If you want to decode from punycode, see punydecode
.
Diagnostics
Exit Status
-
0
success, provided string has been decoded and printed
-
1
failure no argument provided or data from STDIN
-
2
failure reading from STDIN
Dependencies
This utility requires:
In addition to a few of the standard libraries
Bugs and Limitations
There a no known bugs, please see the GitHub repository issues section for a up to date listing.
Only support for Unicode
The utility is limited to decoding to Unicode (version 13) from Punycode.
Please see golang.org/x/net/idna for details.
Only a single argument
punyencode
only takes a single argument.
punyencode kødpålæg
Author
Motivation
This utility was created, when in the process of learning Go. I have worked in the DNS and domain name business for a decade so it was only natural to work on something I know when learning Go.
This particular repository touched the following topics:
- Learning to make CLI tools
- Making an executable distributable and installable component
- Reading data from the CLI
- Reading data from STDIN
- Testing a CLI tool / Main function in Go
See the resources and references below for resources on the above topics.
Resources and References
- Wikipedia: Punycode
- Go Modules Reference
- [GitHub: punyencode][punyencode]
- golang.org/x/net/idna
- yourbasic.org/golang: Read a file (stdin) line by line
- Blog post: Test the main function in Go by Johannes Malsam
License and Copyright
Copyright Jonas Brømsø (jonasbn) 2022
MIT License, see separate LICENSE
file