@hyperfrontend/network-protocol/browser

Browser Platform (src/browser/)

This is a platform-specific entry point. Primary documentation is in src/lib/.

Overview

The browser/ directory provides browser-specific implementations that:

  1. Import shared logic from lib/
  2. Inject browser-native dependencies (Web Crypto API)
  3. Export ready-to-use factories for browser environments

Entry Points

PathDescription
browser/v1v1 protocol with Web Crypto encryption
browser/channelChannel factory pre-wired with browser sender/receiver
browser/dataData factory with browser crypto
browser/packetPacket encryption/decryption with Web Crypto
browser/senderSender factory with browser packet processing
browser/receiverReceiver factory with browser packet processing

Usage

// Import from browser-specific entry points
import { createProtocol } from '@hyperfrontend/network-protocol/browser/v1'
import { createChannel } from '@hyperfrontend/network-protocol/browser/channel'
import { createLogger } from '@hyperfrontend/logging'

const logger = createLogger({ level: 'info' })
const protocolProvider = createProtocol(logger, 60)

// Use postMessage for transport
const channel = createChannel(
  'my-channel',
  (packet) => otherWindow.postMessage(packet, '*'),
  (packet) => handleMessage(packet),
  protocolProvider
)

Integration Tests

Browser integration tests use Jest with JSDOM and Web Crypto polyfills.

Documentation

For detailed documentation on each module, see the library core:

TopicLink
Module Documentationlib/README.md
Architecture GuideARCHITECTURE.md
Package OverviewREADME.md

Differences from Node.js

AspectBrowserNode.js
CryptoWeb Crypto API (crypto.subtle)Node.js crypto module
TransportpostMessage, MessageChannelIPC, sockets, process.send
Test RunnerJest with jest.setup.browser.tsJest with jest.setup.ts
Test Suffix*.browser.spec.ts*.spec.ts

See Also

API reference for browser is not available yet — rebuild docs to regenerate.