Categorygithub.com/jonasbn/punydecode
repositorypackage
0.0.0-20220408211321-9a624bde08b3
Repository: https://github.com/jonasbn/punydecode.git
Documentation: pkg.go.dev

# README

punydecode

This repository has been archived in favor of punycode.

Coverage Status

A simple CLI tool to decode a punycode encoded string

Usage

Decoding a single string, meaning conversion from punycode to human readable text

punydecode xn--blbrgrd-fxak7p

Will emit

blåbærgrød

As an alternative to provided arguments, you can pipe text into punyencode

echo xn--blbrgrd-fxak7p | punydecode

Will emit

blåbærgrød

Installation

Installation is easy using Go

go install github.com/jonasbn/punydecode@latest

If you want a particular version, please see Go Modules Reference

Description

If you want to encode into punycode, see punyencode.

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

punydecode only takes a single argument.

punydecode xn--blbrgrd-fxak7p

Author

  • jonasbn

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:

  1. Learning to make CLI tools
  2. Making an executable distributable and installable component
  3. Reading data from the CLI
  4. Reading data from STDIN
  5. Testing a CLI tool / Main function in Go

See the resources and references below for resources on the above topics.

Resources and References

  1. Wikipedia: Punycode
  2. Go Modules Reference
  3. GitHub: punyencode
  4. golang.org/x/net/idna
  5. yourbasic.org/golang: Read a file (stdin) line by line
  6. 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