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.
Separates Web Serial API availability (what the browser implements) from
this project's official support policy (what we test and guarantee).
Web Serial API availability
Where navigator.serial exists, this library can use the Web Serial API.
Typical desktop availability: Chrome 89+, Edge 89+, Opera 75+, Firefox 151+.
Safari does not currently implement the Web Serial API. Many mobile
browsers also lack navigator.serial; when missing,
isWebSerialSupported returns false.
Project support policy
Official support covers the desktop browsers listed above. Mobile
browsers are untested and out of official support. Untested does
not mean the library rejects them — behavior is not guaranteed.
Synchronous feature detection (navigator.serial present) before
SerialSession.connect$. It is not a compatibility or
official-support guarantee. Secure context is a separate requirement.
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.port.openconnection parameters (excluding filters)state$.statusstate$state$narrowing in RxJS pipelinesBrowser Support
Separates Web Serial API availability (what the browser implements) from this project's official support policy (what we test and guarantee).
Web Serial API availability
Where
navigator.serialexists, this library can use the Web Serial API. Typical desktop availability: Chrome 89+, Edge 89+, Opera 75+, Firefox 151+. Safari does not currently implement the Web Serial API. Many mobile browsers also lacknavigator.serial; when missing, isWebSerialSupported returnsfalse.Project support policy
Official support covers the desktop browsers listed above. Mobile browsers are untested and out of official support. Untested does not mean the library rejects them — behavior is not guaranteed.
isWebSerialSupported
Synchronous feature detection (
navigator.serialpresent) before SerialSession.connect$. It is not a compatibility or official-support guarantee. Secure context is a separate requirement.Example