npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

test-iota-client-wasm

v0.0.10

Published

WASM bindings for the IOTA client library. To be used in Javascript/Typescript

Readme

IOTA client WASM

This is the beta version of the official WASM bindings for IOTA client library.

API Reference

Install the library:

Latest Release: This version matches the main branch of this repository, is stable and will have changelogs.

$ npm install @iota/client-wasm
// or using yarn
$ yarn add @iota/client-wasm

Development Release: This version matches the dev branch of this repository, may see frequent breaking changes and has the latest code changes.

$ npm install @iota/client-wasm@dev
// or using yarn
$ yarn add @iota/client-wasm@dev

Build

Alternatively, you can build the bindings if you have Rust installed. If not, refer to rustup.rs for the installation. Then install the necessary dependencies using:

npm install

and then build the bindings for node.js with

npm run build:nodejs

or for the web with

npm run build:web

NodeJS Setup

const { ClientBuilder } = require('@iota/client-wasm/node')

async function main() {
    let client = await new ClientBuilder()
        .node("https://api.lb-0.h.chrysalis-devnet.iota.cafe")
        .build();
    // Get the nodeinfo
    console.log("Nodeinfo: ", await client.getInfo());
}
main()

Web Setup

The library loads the WASM file with an HTTP GET request, so the .wasm file must be copied to the root of the dist folder.

Rollup

  • Install rollup-plugin-copy:
$ npm install rollup-plugin-copy --save-dev
// or using yarn
$ yarn add rollup-plugin-copy --dev
  • Add the copy plugin usage to the plugins array under rollup.config.js:
// Include the copy plugin
import copy from 'rollup-plugin-copy'

// Add the copy plugin to the `plugins` array of your rollup config:
copy({
  targets: [{
    src: 'node_modules/@iota/client-wasm/web/iota_client_wasm_bg.wasm',
    dest: 'public',
    rename: 'iota_client_wasm_bg.wasm'
  }]
})

Webpack

  • Install copy-webpack-plugin:
$ npm install copy-webpack-plugin --save-dev
// or using yarn
$ yarn add copy-webpack-plugin --dev
// Include the copy plugin
const CopyWebPlugin= require('copy-webpack-plugin');

// Add the copy plugin to the `plugins` array of your webpack config:

new CopyWebPlugin({
  patterns: [
    {
      from: 'node_modules/@iota/client-wasm/web/iota_client_wasm_bg.wasm',
      to: 'iota_client_wasm_bg.wasm'
    }
  ]
}),

Usage

import * as iota from "@iota/client-wasm/web";

iota.init().then(() => {
async function main() {
  // Get the nodeinfo
  let iota_client =  await new iota.ClientBuilder().node("https://api.lb-0.h.chrysalis-devnet.iota.cafe/").build();
  console.log("Nodeinfo: ", await iota_client.getInfo())
}
main()
});

// or

(async () => {
  await iota.init()
  // Get the nodeinfo
  let iota_client = await new iota.ClientBuilder().node("https://api.lb-0.h.chrysalis-devnet.iota.cafe/").build();
  console.log("Nodeinfo: ", await iota_client.getInfo())
})()

// Default path is "iota_client_wasm_bg.wasm", but you can override it like this
await iota.init("./static/iota_client_wasm_bg.wasm");

iota.init().then(<callback>) or await iota.init() is required to load the wasm file (from the server if not available, because of that it will only be slow for the first time)