# Zero Width Unicode Standard (ZWUS) Zero Width Unicode Steganography — hide text inside invisible characters. ```toml [dependencies] zwus = "0.2" ``` ## Usage ```rust use zwus::Zwus; // Encode & decode strings let hidden = Zwus::encode_string("secret"); let revealed = Zwus::decode_to_string(&hidden); assert_eq!(revealed, "secret"); // Encode & decode number arrays let encoded = Zwus::encode_number_array(&[72, 101, 108]); let decoded = Zwus::decode_to_number_array(&encoded); assert_eq!(decoded, vec![72, 101, 108]); ``` ### Base Higher base = shorter output, but more likely visible in some renderers. ```rust use zwus::Zwus; Zwus::encode_string_with_base("hi", 3); // safest Zwus::encode_string_with_base("hi", 6); // default, compact Zwus::encode_string_with_base("hi", 8); // most compact ``` Decode must match the encode base: ```rust use zwus::Zwus; let encoded = Zwus::encode_string_with_base("hi", 6); Zwus::decode_to_string_with_base(&encoded, 6); ``` ### Embedded in visible text Non-ZWUS characters are automatically ignored during decoding, so hidden payloads survive being mixed into normal text. ```rust use zwus::Zwus; let hidden = Zwus::encode_string("secret"); let carrier = format!("nothing to see here{hidden}, move along"); let extracted = Zwus::decode_to_string(&carrier); assert_eq!(extracted, "secret"); ``` ### Full Unicode support Handles emoji and all of Unicode — anything `char` can represent. ```rust use zwus::Zwus; let encoded = Zwus::encode_string("hello 🦀🔥"); let decoded = Zwus::decode_to_string(&encoded); assert_eq!(decoded, "hello 🦀🔥"); ``` ## Interop Encoded output is byte-identical to the [npm package](https://www.npmjs.com/package/zwus), so you can encode in JS and decode in Rust or vice versa. ## License [WTFPL](LICENSE) ## Browser Extension You can also use ZWUS in your browser with [inØsight](https://github.com/inzerosight/inzerosight): [Firefox Add-on](https://addons.mozilla.org/en-US/firefox/addon/in0sight/) · [Chrome Web Store](https://chromewebstore.google.com/detail/acnmohbphjmnbaboacmecidopeplkhog)