|0.2.2||Jan 11, 2021|
|0.2.1||Oct 2, 2020|
|0.2.0||Sep 2, 2020|
|0.1.1||Jun 5, 2020|
|0.1.0||Mar 20, 2019|
#38 in No standard library
1,577 downloads per month
Used in 2 crates
Compiletime string constant obfuscation for Rust.
The string constant itself is embedded in obfuscated form and deobfuscated locally. This reference to a temporary value must be used in the same statement it was generated. See the documentation for more advanced use cases.
obfstr! macro returns the deobfuscated string as a temporary value:
assert_eq!(obfstr::obfstr!("Hello 🌍"), "Hello 🌍");
wide! macro provides compiletime utf16 string constants:
let expected = &['W' as u16, 'i' as u16, 'd' as u16, 'e' as u16, 0]; assert_eq!(obfstr::wide!("Wide\0"), expected);
random! macro provides compiletime random values:
const RND: i32 = obfstr::random!(u8) as i32; assert!(RND >= 0 && RND <= 255);
Compiletime random values are based on
column!() and a fixed seed to ensure reproducibility.
This fixed seed is stored as text in the environment variable
OBFSTR_SEED and can be changed as desired.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.