5 releases (1 stable)
1.0.0 | Mar 30, 2021 |
---|---|
0.6.0 | Mar 25, 2021 |
0.5.0 | Mar 17, 2021 |
0.0.2 | Mar 17, 2021 |
0.0.1 | Mar 17, 2021 |
#1019 in Encoding
250KB
12K
SLoC
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.
To get started using I-DUNNO immediately, see the I-DUNNO Creator which is based on this project.
Install and use
First, install Rust.
Next, install i-dunno
:
cargo install i-dunno
Finally, run it like this:
i-dunno 198.51.100.164
Building
First, install Rust.
Now you may build with:
cargo test
Or, if you have GNU Make, try:
make
Limitations
The current implementation is restricted to generating I-DUNNO encodings with no padding bits. Adding support for padding bits would be a good contribution opportunity - see the notes in combinations.rs, and Issue #1.
More info
Additional tools
We recommend installing cargo-watch
and rustfmt
:
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 project is copyright 2021 by Andy Balaam.
The design is inspired by the work of Lily Foster in Python I-DUNNO.
Contains an adapted version of confusables_to_data.rs by Peter Reid.
This code is released under the MIT license.
Dependencies
~2MB
~20K SLoC