# ZW Utility for encoding and decoding text using zero-width characters. ## How it works Subject text is first converted to its binary representation (e.g. "foo" -> "011001100110111101101111"), then each digit is replaced with a zero-width character (specifically: `U+200B` and `U+200C`). Decoding is simply the inverse of the same flow of operations. ## Usage As a module: ```rust use zw; // ... let encoded = zw::encode("Hello"); let decoded = zw::decode(&encoded); ``` As a CLI tool: ```sh zw [-e|--encode] [-d|--decode] [input] ``` If both `-e` and `-d` flags are omitted then conversion direction is guessed based on the first interpreted character. Reads from `stdin` if an input string isn't provided in its arguments. ```sh # Shell-ish zw "Hello" > encoded.txt cat encoded.txt | zw > decoded.txt # MacOS clipboard encoding pbpaste | zw | pbcopy ```