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

@belyas/pubsub-mfe

v0.8.1

Published

Lightweight browser Pub/Sub for microfrontends with cross-tab delivery and history replay capabilities.

Readme

Browser-native Pub/Sub for microfrontends — zero dependencies, MQTT-style wildcards, optional schema validation.

A production-grade publish/subscribe bus designed for microfrontend architectures. Uses only native browser APIs, provides handler isolation, and supports flexible topic patterns.

Features

  • Zero Dependencies — No external libraries, tree-shakable
  • MQTT-style Wildcards+ (single-level) and # (multi-level) patterns
  • Handler Isolation — Bulkhead pattern prevents cascading failures
  • AbortSignal Support — Lifecycle-aware subscriptions
  • Schema Validation — Optional JSON Schema validation with strict/warn modes
  • Source Filtering — Include/exclude messages by source identifier
  • Diagnostics Hooks — Observability for debugging and monitoring
  • TypeScript-First — Full type safety with branded types

Installation

npm install @belyas/pubsub-mfe

Build & Development

If you want to build or run the project locally (examples, tests, or to contribute), use the package scripts provided in the repository. The project uses pnpm as the package manager.

Install dependencies:

pnpm install

Common development tasks:

# Build the library (outputs to dist/)
pnpm run build

# Run the test suite (Vitest)
pnpm run test

# Run type checking (TS compiler)
pnpm run typecheck

# Lint the source (ESLint)
pnpm run lint

# Check/format code (Prettier)
pnpm run format:check
pnpm run format

# Run the demo example (TypeScript)
# Option A: run the compiled example (requires a prior build)
node examples/demo.mjs
# Option B: run the TypeScript example directly
node examples/demo.ts

Quick Start

import { createPubSub } from '@belyas/pubsub-mfe';

// Create a bus instance
const bus = createPubSub({ app: 'my-app' });

// Subscribe to a topic
bus.subscribe('cart.item.add', (msg) => {
  console.log('Item added:', msg.payload);
});

// Publish a message
bus.publish('cart.item.add', { sku: 'ABC123', qty: 1 });

📚 View Full Documentation

Documentation

Comprehensive guides and examples are available in the online documentation:

Key Features

🎯 Zero Dependencies

Built entirely on native browser APIs with tree-shaking support for minimal bundle size.

🔒 Security First

  • Prototype pollution prevention — Blocks dangerous property names
  • ReDoS protection — Validates regex patterns for catastrophic backtracking
  • Input length limits — Prevents DoS via long strings
  • Origin validation — iframe adapter validates all messages

🎭 MQTT-Style Wildcards

Flexible topic patterns with + (single-level) and # (multi-level) wildcards. Topic Patterns.

🛡️ Handler Isolation

Bulkhead pattern ensures one failing handler doesn't affect others. Handler Isolation.

📋 Schema Validation

Optional JSON Schema validation with strict/warn modes. Schema Validation.

🔄 Message Replay

In-memory retention buffer for late-joining subscribers with configurable TTL. For advanced usage, you can use history adapter which implements IndexedDB under the hood. History Adapter.

🖼️ Iframe Adapter

Secure bidirectional communication with sandboxed iframes using MessageChannel. Iframe Adapter.

🔗 AbortSignal Support

Lifecycle-aware subscriptions that integrate with component cleanup.

📊 Diagnostics

Built-in hooks for monitoring, debugging, and observability.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

Apache-2.0 © Yassine Belkaid


📚 Full Documentation💬 Discussions🐛 Issues