I-DUNNO in Rust

This library implements the Internationalized Deliberately Unreadable Network Notation (shortened as I-DUNNO) as defined in RFC 8771. The library supports encoding and decoding I-DUNNO representation, but the command line interface only supports encoding and does not implement decoding, as the RFC recommends the output of such a function SHOULD NOT be presented to humans.

The code and documentation borrow heavily from the Python implementation of I-DUNNO by Lily Foster.

Install and use

First, install Rust.

Next, install i-dunno:

bash cargo install i-dunno

Finally, run it like this:

bash i-dunno 198.51.100.164

Building

First, install Rust.

Now you may build with:

bash cargo test

Or, if you have GNU Make, try:

bash make

Additional tools

We recommend installing cargo-watch and rustfmt:

bash rustup component add rustfmt cargo install cargo-watch

Contributing

Contributions are welcome! Make sure you only submit code you wrote, or that you have permission to submit.

Feel free to log issues and suggest changes via merge requests.

You should definitely format your code with cargo fmt before submitting merge requests.

License and copyright

This code is heavily based on the work of Lily Foster in Python I-DUNNO.

Porting to Rust and novel code are copyright 2021 Andy Balaam.

Contains an adapted version of confusablestodata.rs by Peter Reid.

This code is released under the MIT license.