JSPM

@totemsdk/stream-transport

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 16
  • Score
    100M100P100Q58400F
  • License MIT

Transport adapters for Totem SDK — IStreamTransport interface, NodeStream, WebSocket, WebRTC, Stdio, Hyperswarm, and in-memory transports

Package Exports

  • @totemsdk/stream-transport

Readme

@totemsdk/stream-transport

Transport-layer abstractions for the Totem SDK — a suite of bidirectional byte-stream adapters implementing the IStreamTransport interface.

Included adapters

Adapter Description
NodeStreamTransport Wraps any Node.js Duplex/Socket stream
WebSocketTransport Browser and Node.js WebSocket adapter
WebRTCDataChannelTransport Browser RTCDataChannel adapter
StdioStreamTransport process.stdin / process.stdout transport
HyperswarmStreamTransport Raw Hyperswarm connection adapter
InMemoryTransport In-process pair for unit tests

Installation

npm install @totemsdk/stream-transport

hyperswarm is an optional peer dependency — only needed if you use HyperswarmStreamTransport or createHyperswarmTransport.

Quick start

import {
  InMemoryTransport,
  createInMemoryPair,
  WebSocketTransport,
  channelTopic,
} from '@totemsdk/stream-transport';

// In-process pair (great for tests)
const [a, b] = createInMemoryPair();
b.on('data', (bytes) => console.log('received', bytes));
a.send(new TextEncoder().encode('hello'));

// WebSocket
const wst = new WebSocketTransport(myWebSocket);
wst.on('data', (bytes) => { /* ... */ });
wst.send(new Uint8Array([1, 2, 3]));

Topic helpers

import { channelTopic, peerTopic, broadcastTopic } from '@totemsdk/stream-transport';

const topic = channelTopic('my-channel-id'); // 32-byte Buffer (SHA3-256)

License

MIT