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

#277 in Debugging

Download history 9/week @ 2025-05-21 250/week @ 2025-06-04 417/week @ 2025-06-11 447/week @ 2025-06-18 322/week @ 2025-06-25 267/week @ 2025-07-02 321/week @ 2025-07-09 284/week @ 2025-07-16 293/week @ 2025-07-23 45/week @ 2025-07-30 121/week @ 2025-08-06 139/week @ 2025-08-13 129/week @ 2025-08-20 100/week @ 2025-08-27 178/week @ 2025-09-03

565 downloads per month
Used in eldenring-util

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.5–1.1MB
~22K SLoC