Metadata-Version: 2.4
Name: multi-demangle
Version: 1.0.4
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
License-File: LICENSE
Summary: A library to demangle symbols from various languages and compilers.
Keywords: demangler,binary
Home-Page: https://github.com/AppThreat/multi-demangle
Author-email: Team AppThreat <cloud@appthreat.com>
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# multi-demangle

Demangling support for various languages and compilers. Fork of [symbolic-demangle](https://github.com/getsentry/symbolic/tree/10.2.1/symbolic-demangle).

Currently supported languages are:

- C++ (Itanium/GCC-style compilers, GNU v2, CodeWarrior, and MSVC)
- Rust (both `legacy` and `v0`)
- Scala Native (via the unknown-language fallback)
- Swift (up to Swift 6.3)
- ObjC (only symbol detection)

As the demangling schemes for the languages are different, the supported demangling features are
inconsistent. For example, argument types were not encoded in legacy Rust mangling and thus not
available in demangled names.

## Development

Use `uv` package manager.

```
uv tool install maturin
maturin develop --all-features
```

## Python usage

Install the pypi package `multi-demangle`

```
pip install multi-demangle
```

```
>>> import multi_demangle
>>> print(multi_demangle.demangle_symbol("_ZN3foo3barEv"))
foo::bar()
```

## License

MIT

