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

@avatarsd-llc/libtracer-webtransport

v0.4.0

Published

WebTransport transport for libtracer (ADR-0043 Phase B) — a browser WebTransport client that carries libtracer TLV frames over ONE bidirectional stream with 4-byte u32-LE length-prefix framing, wire-compatible with the C++ tr::net::webtransport_transport_

Readme

@avatarsd-llc/libtracer-webtransport

WebTransport transport for libtracer — a browser WebTransport client that carries libtracer TLV frames over one bidirectional stream with 4-byte u32-LE length-prefix framing. It is wire-compatible with the C++ tr::net::webtransport_transport_t (core/include/libtracer/transport_webtransport.hpp, the libtracer_quic module): a browser connects directly to a node's graph (ADR-0043 Phase B — the #92 / ADR-0031 browser↔robot path).

WebTransport is the browser-reachable form of QUIC (ADR-0031): TLS 1.3, no TCP head-of-line blocking, and the substrate for later datagram/multi-stream modes. The framing is the same M6 stream framing the C++ TCP/QUIC transports speak — the prefix is transport framing, not part of the TLV. The core (@avatarsd-llc/libtracer) is a peerDependency (ADR-0033).

Two entry points

// 1) The pure, socket-free length-prefix record codec.
import { encodeRecord, FrameReassembler } from '@avatarsd-llc/libtracer-webtransport/framing';

// 2) The TransportWebTransport client (drives the runtime's WebTransport).
import { TransportWebTransport } from '@avatarsd-llc/libtracer-webtransport';
import { encode, TYPE } from '@avatarsd-llc/libtracer';

Usage (browser)

const transport = new TransportWebTransport('https://robot.local:4433/', {
  // DEV ONLY — pin the self-signed server certificate. Browsers require an
  // ECDSA certificate valid <= 14 days for this path; deployments use a real
  // certificate and omit the option.
  serverCertificateHashes: [{ algorithm: 'sha-256', value: certHashBytes }],
});
transport.onFrame((bytes) => console.log('frame', bytes));
await transport.connect();
transport.send(encode(myTlv));

Compute the dev hash from the server's PEM:

openssl x509 -in cert.pem -outform der | openssl dgst -sha256 -binary | base64

TransportWebTransport satisfies the client SDK's ClientTransport seam structurally (send / onFrame / onClose), exactly like TransportWsnew LibtracerClient(transport) works unchanged.

Runtimes and testing

Node has no native WebTransport client, so this package's unit tests run against a mocked WebTransport (web streams), and the wire itself is proven end-to-end in C++ (core/tests/webtransport_test.cpp implements the client half of the handshake). A real-browser interop harness (test/interop-browser.test.mjs) drives chrome-headless via puppeteer against the C++ wt_interop_server echo binary; it skips gracefully unless LIBTRACER_WT_INTEROP_SERVER is set and puppeteer is installed.