The idea is that Rust strings can be converted to OsStrings without allocation, but I do think (pseudo) UTF-16 is worth natively supporting. It’s not only a Windows thing - it’s also the only way to do free/cheap String exchange with C# and Java native libraries, and when WebAssembly gets better JavaScript interop the same will be true there.