2 min read

Yesterday, Syrus Akbary, the Founder and CEO of Wasmer, announced the release of WebAssembly Package Manager (WAPM). This package manager is introduced to make it easier for developers to use WebAssembly anywhere.

Why WAPM is being introduced?

With this package manager, the Wasmer team aims to improve the developer ergonomics of WebAssembly. Explaining the advantages of WAPM, Akbary said, “WebAssembly is an abstraction on top of chipset instructions, this enables wasm modules to run very easily on any machine. If we move this abstraction up we can unlock the potential of having universal binaries that can run anywhere, even on platforms/chipsets not supported at the moment of releasing the binary.

We already have Node.js Package Manager (NPM) that hosts WebAssembly modules. However, the team believes that WebAssembly on the server-side is a different use case and hence deserves a package manager specifically designed for it.

What are its advantages?

Following are the advantages that WAPM comes brings in:

  • Allows developers to easily publish, download, and use WebAssembly modules.
  • Allows developers to easily define commands on top of Wasm.
  • Enables developers to create universal libraries in WebAssembly that can be used from all languages including Python, PHP, JavaScript, Rust, C, and C++.
  • Enables support for different ABIs (Application Binary Interface) such as WASI, Emscripten, or even new ones in the future.

This release comes with a ‘wapm’ command-line application and a website and package registry: wapm.io.

Here’s a video demonstrating how WAPM works:

After seeing the governance issues with NPM, many developers are skeptical about another private community package manager “I’ve grown uncomfortable with NPM being operated by NPM Inc instead of The Node.js Foundation, but it’s a hard thing to change once it’s established. We should hesitate to support the establishment of another community package manager by a for-profit company,” a Redditor said.

To know more in detail, check out the official announcement.

Read Next

Mozilla introduces Pyodide, a Python data science stack compiled to WebAssembly

Fastly open sources Lucet, a native WebAssembly compiler and runtime

How you can replace a hot path in JavaScript with WebAssembly