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:
- Import shared logic from
lib/ - Inject browser-native dependencies (Web Crypto API)
- Export ready-to-use factories for browser environments
Entry Points
| Path | Description |
|---|---|
browser/v1 |
v1 protocol with Web Crypto encryption |
browser/channel |
Channel factory pre-wired with browser sender/receiver |
browser/data |
Data factory with browser crypto |
browser/packet |
Packet encryption/decryption with Web Crypto |
browser/sender |
Sender factory with browser packet processing |
browser/receiver |
Receiver 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:
| Topic | Link |
|---|---|
| Module Documentation | lib/README.md |
| Architecture Guide | ARCHITECTURE.md |
| Package Overview | README.md |
Differences from Node.js
| Aspect | Browser | Node.js |
|---|---|---|
| Crypto | Web Crypto API (crypto.subtle) |
Node.js crypto module |
| Transport | postMessage, MessageChannel |
IPC, sockets, process.send |
| Test Runner | Jest with jest.setup.browser.ts |
Jest with jest.setup.ts |
| Test Suffix | *.browser.spec.ts |
*.spec.ts |
See Also
- Node.js Platform - Node.js counterpart
- Library Core - Shared implementation