undname
is a purely Rust-based implementation of a Microsoft symbol demangler. It functions as an alternative to msvc-demangler
and Microsoft's own UnDecorateSymbolName
. It is closely based off of LLVM's own llvm-undname
and boasts competitive performance and better accuracy when compared to existing implementations.
The latest development docs are available at: https://ryan-rsm-mckenzie.github.io/undname-rs/undname/index.html
The stable release docs are available at: https://docs.rs/undname/latest/undname/
Changelogs are available at: https://github.com/Ryan-rsm-McKenzie/undname-rs/releases
use undname::Flags;
let result = undname::demangle("?world@@YA?AUhello@@XZ", Flags::default()).unwrap();
assert_eq!(result, "struct hello __cdecl world(void)");