7 stable releases

2.1.2 Oct 7, 2024
2.1.0 Aug 23, 2024
1.1.2 Jul 25, 2024
1.1.1 Jun 10, 2024
1.0.0 May 31, 2024

#165 in Debugging

Download history 129/week @ 2024-07-20 23/week @ 2024-07-27 8/week @ 2024-08-03 45/week @ 2024-08-10 237/week @ 2024-08-17 45/week @ 2024-08-24 21/week @ 2024-09-14 30/week @ 2024-09-21 42/week @ 2024-09-28 304/week @ 2024-10-05 26/week @ 2024-10-12

339 downloads per month

Apache-2.0 WITH LLVM-exception

385KB
9K SLoC

Overview

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

Example

use undname::Flags;
let result = undname::demangle("?world@@YA?AUhello@@XZ", Flags::default()).unwrap();
assert_eq!(result, "struct hello __cdecl world(void)");

Dependencies

~0.6–1.2MB
~25K SLoC