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

zmq-exercise

v0.3.0

Published

Console app to exercise core ZMQ components

Downloads

5

Readme

ZMQ Exercise App

A console application to exercise core ZMQ components with three modes:

  1. Receiver Mode: Uses zmq_message_receiver to receive pings and respond with pongs
  2. Sender Mode: Uses zmq_actor_sender to send pings
  3. Connector Mode: Uses zmq_actor_connector to send Ping and get a Pong (request-response pattern)

Installation

# Install dependencies
npm install

Usage

The application has three modes of operation:

Receiver Mode

Starts a receiver that listens for ping messages and responds with pong messages.

npm run receiver

Options:

  • --name <name>: Name of the receiver actor (default: "ping-pong-receiver")

Sender Mode

Sends ping messages to a specified target.

npm run sender

Options:

  • --target <target>: Target actor name (default: "ping-pong-receiver")
  • --count <count>: Number of messages to send (default: 10)
  • --interval <interval>: Interval between messages in ms (default: 1000)

Connector Mode

Sends Ping messages and waits for Pong responses using the request-response pattern.

npm run connector

Options:

  • --target <target>: Target actor name (default: "ping-pong-receiver")
  • --count <count>: Number of messages to send (default: 5)
  • --timeout <timeout>: Timeout for responses in ms (default: 5000)

Testing the Application

To test the application, you need to run at least two instances in different terminals:

From the app directory

  1. Start the receiver in one terminal:

    cd apps/zmq-exercise && npm run receiver
  2. In another terminal, run either the sender or connector:

    cd apps/zmq-exercise && npm run sender
    # or
    cd apps/zmq-exercise && npm run connector

From the root directory (recommended)

  1. Start the receiver in one terminal:

    npm run zr
  2. In another terminal, run either the sender or connector:

    npm run zs
    # or
    npm run zc

Current Status

  • Receiver Mode: Working - listens for both text and Protobuf Ping messages and responds accordingly
  • Sender Mode: Working - sends Protobuf Ping messages to the specified target
  • Connector Mode: Partially working - sends Ping messages but may not receive Pong responses due to request-response routing issues

Implementation Details

The application demonstrates three core ZMQ components:

  1. ZmqMessageReceiver: Used in receiver mode to listen for incoming messages
  2. ZMQActorSender: Used in sender mode to send one-way messages
  3. ZMQActorConnector: Used in connector mode for request-response communication

All three modes use Protocol Buffers for message serialization, specifically the Ping and Pong message types defined in the core package.