A TypeScript library that wraps the Web Serial API with a minimal,
RxJS-based session surface.
Public API
The public API exposes a single, session-oriented surface so that apps
(Angular, Vue, React, Svelte, vanilla JS/TS) can drive their UI from
state$ (canonical lifecycle discriminated union) + errors$ (error event
channel) + receive$ + terminalText$ + lines$ without rebuilding state,
read loops, or write queues. Derive convenience booleans from state$
narrowing; isConnected$ is deprecated in v3.x.
web-serial-rxjs
A TypeScript library that wraps the Web Serial API with a minimal, RxJS-based session surface.
Public API
The public API exposes a single, session-oriented surface so that apps (Angular, Vue, React, Svelte, vanilla JS/TS) can drive their UI from
state$(canonical lifecycle discriminated union) +errors$(error event channel) +receive$+terminalText$+lines$without rebuilding state, read loops, or write queues. Derive convenience booleans fromstate$narrowing;isConnected$is deprecated in v3.x.port.openconnection parameters (excluding filters)state$.statusstate$state$narrowing in RxJS pipelinesBrowser Support
The Web Serial API is supported on desktop browsers only. Smartphones and other mobile browsers are not supported.
Supported desktop browsers:
Safari does not currently support the Web Serial API.
Use SerialSession.isBrowserSupported for a synchronous feature check before calling SerialSession.connect$.
Example