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

@fyrlabs/dead-drop-transport-sdk

v1.1.0

Published

Public SDK for authoring dead-drop transport adapters

Readme

@fyrlabs/dead-drop-transport-sdk

The contract third-party transports compile against, plus the conformance suite that proves one behaves.

Deliberately small and deliberately stable: it is the only thing outside the dead-drop repository that has to keep working across releases. Install this if you are writing a transport. You do not need it to use dead-drop.

Install

npm install @fyrlabs/dead-drop-transport-sdk

Requires Node.js 20.11 or newer.

Writing a transport

Most backends people want are object stores with no delivery semantics of their own: S3, a git remote, a synced folder, SharePoint. So a store transport implements four methods, and the runtime supplies encryption, chunking, acknowledgement, retries, deduplication, ordering and failover on top.

import { assertValidKey, defineTransport } from '@fyrlabs/dead-drop-transport-sdk';

export const acmeTransport = defineTransport({
  id: 'acme',
  capabilities: {
    kind: 'store',
    ordering: 'partition',
    binaryPayloads: true,
    delete: true,
    watch: false,
    orderedList: true,
  },
  create(config, context) {
    return {
      kind: 'store',
      async put(key, data, options = {}) {
        assertValidKey(key);
        /* … */
      },
      async get(key) {
        /* … returns undefined when missing, never throws */
      },
      async list(prefix, options) {
        /* … */
      },
      async delete(key) {
        /* … idempotent */
      },
      async health() {
        return { status: 'healthy' };
      },
    };
  },
});

A backend that already is a message system can declare kind: 'native' and send and subscribe directly instead.

Prove it behaves

import { transportConformanceCases } from '@fyrlabs/dead-drop-transport-sdk/testing';

The suite is framework-agnostic: it hands you cases you run under vitest, jest, node:test or a bare script. It covers the behaviour the mailbox engine depends on, including that get returns undefined rather than throwing for a missing key, that delete is idempotent, that list does not treat a prefix as a substring, that pagination terminates, and that every byte value survives a round trip.

A complete transport in about 60 lines, with the suite running against it, is in examples/custom-transport.

Documentation

Part of dead-drop, a transport-agnostic runtime for distributed applications.

Licence

Apache-2.0.