
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
swift-demangle-wasm
Advanced tools
A Swift demangling library compiled to WebAssembly, allowing you to demangle Swift symbol names in web browsers and Node.js environments.
Swift uses name mangling to encode type information and other metadata into symbol names during compilation. This results in cryptic symbol names like $sSi1soiyS2i_SitFZ which correspond to human-readable function signatures like static Swift.Int.- infix(Swift.Int, Swift.Int) -> Swift.Int.
This package provides a WebAssembly-compiled Swift demangler that can convert these mangled names back to their readable form, making it useful for:
npm install swift-demangle-wasm
import init from "swift-demangle-wasm";
const demangle = await init();
const result = demangle("$sSi1soiyS2i_SitFZ");
console.log(result);
// Output: "static Swift.Int.- infix(Swift.Int, Swift.Int) -> Swift.Int"
import init from "swift-demangle-wasm";
// The browser version requires loading the WASM module
const response = await fetch("path/to/swift-demangle.wasm");
const demangle = await init({ module: response });
const result = demangle("$sSi1soiyS2i_SitFZ");
console.log(result);
// Output: "static Swift.Int.- infix(Swift.Int, Swift.Int) -> Swift.Int"
init(options?: InitializeOptions): Promise<Demangler>Initializes the WASM module and returns a demangler function.
Parameters:
options (optional): Initialization options
module: A Response object or ArrayBuffer containing the Wasm module (required for browser environments)Returns:
Promise<Demangler>: A promise that resolves to a demangler functionDemangler(mangledName: string): stringDemangles a Swift symbol name.
Parameters:
mangledName: The mangled Swift symbol name to demangleReturns:
string: The demangled, human-readable symbol name. If demangling fails, returns the original input.If you want to build this project yourself, you'll need to set up the Swift WebAssembly toolchain.
Swift 6.2+ toolchain from swift.org
Before building, you need to configure your shell environment to use the correct Swift toolchain and SDK:
# Set up the Swift toolchain path
export PATH=$HOME/Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin:$PATH
# Install Swift SDK for WebAssembly if you haven't installed it
swift sdk install https://download.swift.org/swift-6.2-release/wasm/swift-6.2-RELEASE/swift-6.2-RELEASE_wasm.artifactbundle.tar.gz --checksum fe4e8648309fce86ea522e9e0d1dc48e82df6ba6e5743dbf0c53db8429fb5224
# Install dependency packages
npm install
To build package:
./build.sh
To run tests after building:
npm test
This runs both Node.js and browser tests using Vitest.
MIT
FAQs
swift-demangle compiled to WebAssembly
We found that swift-demangle-wasm demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.