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

yapyap

v0.0.9

Published

YapYap is a decentralized, peer-to-peer messenger node and CLI library built with Node.js + TypeScript. It prioritizes reliable end-to-end encrypted delivery, offline/store-and-forward support, deduplication, and ACK-driven reliability inside a small-foot

Downloads

816

Readme

YapYap Messenger

YapYap is a decentralized, peer-to-peer messenger node and CLI library built with Node.js + TypeScript. It prioritizes reliable end-to-end encrypted delivery, offline/store-and-forward support, deduplication, and ACK-driven reliability inside a small-footprint CLI package (no UI) so other applications can embed YapYap as a dependency or run it as an executable.

Key features

  • Central YapYapNode/MessageRouter stack for message enqueue → transmit → receive → acknowledge → retry flows (see docs/MESSAGE_FLOW.md).
  • Built on libp2p (TCP/WebSocket yamux transport, bootstrap + DHT discovery, autonat/relay fallbacks) with Noise XX/IK and Ed25519 for E2EE.
  • SQLite-backed persistence using better-sqlite3 (message_queue, processed_messages, replica tables) plus LRU dedup caches and replica-aware retries.
  • CLI (yapyap binary) that ships init, start, send, status, peers, and HTTP API endpoints for automated control.

Getting started

Quick install (recommended)

curl -fsSL https://viliamvolosv.github.io/yapyap/install.sh | bash

Or use the installer with specific options:

# Install via npm (default)
curl -fsSL https://viliamvolosv.github.io/yapyap/install.sh | bash -s -- --no-onboard

# Install from GitHub source
curl -fsSL https://viliamvolosv.github.io/yapyap/install.sh | bash -s -- --method github --no-onboard

Manual install

  1. Install Node.js 22.12+ and clone the repository: https://github.com/viliamvolosv/yapyap
  2. Run npm install to populate dependencies.
  3. Build the project with npm run build:all (creates dist/index.js and dist/cli.js).
  4. Start the node locally via npm run dev or run the CLI: node dist/cli.js start

Requirements: Node.js ≥22.12.0

Development workflows

  • Tests: npm test (uses Node.js native test runner with tsx). Test files use .test.ts suffix.
  • Lint/format/typecheck: npm run lint, npm run format, npm run check, npm run typecheck (Biome + TypeScript).
  • Integration suites: bash tests/integration/docker/run-basic-suite.sh (default scenarios) or bash tests/integration/docker/run.sh for custom scenarios using Docker Compose.
  • Build: npm run build:all - Fast builds with esbuild (~10ms)

Documentation & roadmap

  • Quick install: Use the installer script: https://viliamvolosv.github.io/yapyap/install.sh
  • AGENT skill: Get started quickly with curl -s https://viliamvolosv.github.io/yapyap/skill.md | bash
  • GitHub: https://github.com/viliamvolosv/yapyap (issues and contributions)

Contributing

  • Keep TypeScript strict (noImplicitAny, no any, narrow unknown before use). Prefer interfaces for public APIs and import type when only types are needed.
  • Use Node.js native APIs (node:* imports). The project uses better-sqlite3 for SQLite, ws for WebSocket, and esbuild for bundling.
  • Test files use Node's built-in test runner (node:test) with assert for assertions.
  • Investigate lint warnings about unused parameters—either refactor or remove them rather than ignoring.

Publishing & release notes

  • Build artifacts land in dist/ for the yapyap CLI and library exports (package.json points to dist/index.js/cli.js).
  • Dependencies managed via package-lock.json and npm.
  • Docker images use node:22-alpine base (see tests/integration/docker/Dockerfile.*).
  • The repository is MIT licensed (see LICENSE).
  • See CHANGELOG.md for detailed release notes.

For deeper dives, consult the individual docs referenced above before contributing significant changes.