A TypeScript library that provides a reactive RxJS-based wrapper for the Web Serial API, enabling easy serial port communication in web applications.
This library is framework-agnostic and can be used with:
The Web Serial API is currently only supported in Chromium-based browsers:
The library includes built-in browser detection utilities to check for Web Serial API support before attempting to use it.
Install the package using npm or pnpm:
npm install @gurezo/web-serial-rxjs
# or
pnpm add @gurezo/web-serial-rxjs
This library requires RxJS as a peer dependency:
npm install rxjs
# or
pnpm add rxjs
Minimum required version: RxJS ^7.8.0
Examples are available for the following environments:
useSerialClient)Each example includes a README with setup and usage instructions.
The project icon includes a modified design inspired by the RxJS logo, combined with a serial connector motif to represent Web Serial communication.
The icon is used only to indicate that this library provides RxJS-based abstractions for the Web Serial API.
This project is an independent open source project and is not affiliated with, endorsed by, or sponsored by the ReactiveX or RxJS project.
This project includes Model Context Protocol (MCP) server configuration for AI-assisted development. The following MCP servers are available:
| Server | Purpose |
|---|---|
| nx-mcp | Nx workspace analysis, project graph, CI monitoring, and documentation |
| angular-cli | Angular CLI tools for example-angular (code generation, documentation, best practices) |
| svelte | Svelte/SvelteKit documentation and code analysis for example-svelte |
Configuration files:
.mcp.json - Standard MCP configuration (Cursor, VS Code, Claude, etc.).cursor/mcp.json - Cursor-specific configurationTo use MCP servers in Cursor, the configuration is automatically loaded from .cursor/mcp.json. For VS Code, add the MCP extension and configure it to use .mcp.json, or add the server definitions to your MCP settings.
This project follows a trunk-based development approach:
main branch: Always in a release-ready statefeature/*, fix/*, docs/* for pull requestsv1.0.0), not branchesrelease/v* branches are added only when needed for maintaining multiple major versionsFor detailed contribution guidelines, see CONTRIBUTING.md.
For detailed release instructions, see RELEASING.md.
We welcome contributions! Please see our Contributing Guide for details on:
For Japanese contributors, please see CONTRIBUTING.ja.md.
For release instructions, see RELEASING.md (or RELEASING.ja.md for Japanese).
This project is licensed under the MIT License - see the LICENSE file for details.