Files
skills/docs/networking/network/network-transport-hyperswarm
2026-05-29 08:20:56 +01:00
..
2026-05-29 08:20:56 +01:00
2026-05-29 08:20:56 +01:00

@suaveplan/network-transport-hyperswarm - Server-tier Hyperswarm DHT transport for @suaveplan/network — hole-punched peer-to-peer streams discovered via Kademlia DHT topics

Summary

Server-tier Hyperswarm DHT transport for @suaveplan/network. Provides hole-punched peer-to-peer streams discovered via Kademlia DHT topics.

This package is server-only — it depends on the hyperswarm npm package, which is Node-only. Browser consumers should use a different transport (@suaveplan/network-transport-websockets, @suaveplan/network-transport-webrtc).

Documentation tree

- [connections](./src/connections/connections.md) — _(no submodules)_- [discovery](./src/discovery/discovery.md) — _(no submodules)_- [discovery](./src/discovery/discovery.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [messaging](./src/messaging/messaging.md) — _(no submodules)_- [messaging](./src/messaging/messaging.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [reputation](./src/reputation/reputation.md) — _(no submodules)_- [reputation](./src/reputation/reputation.md) — _(no submodules)_- [security](./src/security/security.md) — _(no submodules)_- [security](./src/security/security.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [connections](./src/connections/connections.md) — _(no submodules)_- [discovery](./src/discovery/discovery.md) — _(no submodules)_- [discovery](./src/discovery/discovery.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [messaging](./src/messaging/messaging.md) — _(no submodules)_- [messaging](./src/messaging/messaging.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [reputation](./src/reputation/reputation.md) — _(no submodules)_- [reputation](./src/reputation/reputation.md) — _(no submodules)_- [security](./src/security/security.md) — _(no submodules)_- [security](./src/security/security.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [connections](./src/connections/connections.md) — _(no submodules)_- [discovery](./src/discovery/discovery.md) — _(no submodules)_- [discovery](./src/discovery/discovery.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_- [messaging](./src/messaging/messaging.md) — _(no submodules)_- [messaging](./src/messaging/messaging.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_- [reputation](./src/reputation/reputation.md) — _(no submodules)_- [reputation](./src/reputation/reputation.md) — _(no submodules)_- [security](./src/security/security.md) — _(no submodules)_- [security](./src/security/security.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_- [connections](./src/connections/connections.md) — _(no submodules)_- [discovery](./src/discovery/discovery.md) — _(no submodules)_ - [discovery](./src/discovery/discovery.md) — _(no submodules)_- [errors](./src/errors/errors.md) — _(no submodules)_ - [errors](./src/errors/errors.md) — _(no submodules)_- [messaging](./src/messaging/messaging.md) — _(no submodules)_ - [messaging](./src/messaging/messaging.md) — _(no submodules)_- [otel](./src/otel/otel.md) — _(no submodules)_ - [otel](./src/otel/otel.md) — _(no submodules)_- [plugin](./src/plugin/plugin.md) — _(no submodules)_ - [plugin](./src/plugin/plugin.md) — _(no submodules)_- [reputation](./src/reputation/reputation.md) — _(no submodules)_ - [reputation](./src/reputation/reputation.md) — _(no submodules)_- [security](./src/security/security.md) — _(no submodules)_ - [security](./src/security/security.md) — _(no submodules)_- [transport](./src/transport/transport.md) — _(no submodules)_ - [transport](./src/transport/transport.md) — _(no submodules)_- [types](./src/types/types.md) — _(no submodules)_ - [types](./src/types/types.md) — _(no submodules)_

Install

bun add @suaveplan/network-transport-hyperswarm

Quick start

import {
    HyperswarmPlugin,
    type HyperswarmFactory,
} from "@suaveplan/network-transport-hyperswarm";

const factory: HyperswarmFactory = () => {
    // Production: wire to real hyperswarm
    // const Hyperswarm = require("hyperswarm");
    // return new Hyperswarm({ maxPeers: 100 });
    throw new Error("wire to real hyperswarm at the application boundary");
};

const plugin = new HyperswarmPlugin({
    topic: "my-room",
    hyperswarmFactory: factory,
});

plugin.install(node);
await plugin.start();

Modules

  • transport — HyperswarmTransport implements Transport
  • plugin — HyperswarmPlugin implements NetworkPlugin
  • messaging — wire-frame codec (encodeFrame / FrameDecoder / prepareTopic)
  • connections — per-peer registry (ConnectionRegistry / writeFrame)
  • discovery — joinTopic / leaveTopic
  • security — validatePeer boundary
  • reputation — ReputationStore
  • errors — NetHyperswarmError + NET_HYPERSWARM_CODES
  • otel — counters, histograms, gauge

See the co-located .md next to each .ts for the full reference.

License

MIT