https://github.com/gurezo/web-serial-rxjs
https://github.com/gurezo/web-serial-rxjs
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/gurezo/web-serial-rxjs
- Owner: gurezo
- License: mit
- Created: 2025-12-13T13:52:01.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-01-10T18:15:43.000Z (3 months ago)
- Last Synced: 2026-01-11T01:30:22.314Z (3 months ago)
- Language: TypeScript
- Homepage: https://gurezo.github.io/web-serial-rxjs/
- Size: 739 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.ja.md
- Contributing: CONTRIBUTING.ja.md
- License: LICENSE
Awesome Lists containing this project
- fucking-awesome-angular - web-serial-rxjs - A TypeScript library that provides a reactive RxJS-based wrapper for the Web Serial API, enabling easy serial port communication in web applications. (Underlying Technologies / RxJS)
- awesome-angular - web-serial-rxjs - A TypeScript library that provides a reactive RxJS-based wrapper for the Web Serial API, enabling easy serial port communication in web applications. (Underlying Technologies / RxJS)
README
# web-serial-rxjs
Web Serial API を RxJS ベースのリアクティブなラッパーで提供する TypeScript ライブラリです。Web アプリケーションでシリアルポート通信を簡単に実現できます。
## 目次
- [機能](#機能)
- [対応フレームワーク](#対応フレームワーク)
- [ブラウザサポート](#ブラウザサポート)
- [インストール](#インストール)
- [ドキュメント](#ドキュメント)
- [サンプル](#サンプル)
- [プロジェクトアイコンについて](#プロジェクトアイコンについて)
- [貢献](#貢献)
- [ライセンス](#ライセンス)
- [リンク](#リンク)
## 機能
- **RxJS ベースのリアクティブ API**: RxJS Observables を活用したリアクティブなシリアルポート通信
- **TypeScript サポート**: 完全な TypeScript 型定義を含む
- **ブラウザ検出**: ブラウザサポートの検出とエラーハンドリング機能を内蔵
- **エラーハンドリング**: カスタムエラークラスとエラーコードによる包括的なエラーハンドリング
- **フレームワーク非依存**: 任意の JavaScript/TypeScript フレームワークまたはバニラ JavaScript で使用可能
## 対応フレームワーク
このライブラリはフレームワーク非依存で、以下の環境で利用できます。
- Angular
- React
- Svelte
- Vanilla JavaScript / TypeScript
## ブラウザサポート
Web Serial API は現在、Chromium ベースのブラウザでのみサポートされています:
- **Chrome** 89+
- **Edge** 89+
- **Opera** 75+
このライブラリには、使用前に Web Serial API のサポートを確認するためのブラウザ検出ユーティリティが含まれています。
## インストール
npm または pnpm を使用してパッケージをインストールします:
```bash
npm install @gurezo/web-serial-rxjs
# または
pnpm add @gurezo/web-serial-rxjs
```
### ピア依存関係
このライブラリは RxJS をピア依存関係として必要とします:
```bash
npm install rxjs
# または
pnpm add rxjs
```
**最小要件バージョン**: RxJS ^7.8.0
## ドキュメント
- **[クイックスタート](docs/QUICK_START.ja.md)** - 基本的な例と使用方法で始める
- **[API リファレンス](docs/API_REFERENCE.ja.md)** - 詳細な説明を含む完全な API ドキュメント
- **[高度な使用方法](docs/ADVANCED_USAGE.ja.md)** - 高度なパターン、ストリーム処理、エラー回復
## サンプル
以下の環境向けのサンプルを用意しています。
- **[Vanilla JavaScript](apps/example-vanilla-js/)** - バニラ JavaScript での基本的な使用方法
- **[Vanilla TypeScript](apps/example-vanilla-ts/)** - RxJS を使用した TypeScript の例
- **[React](apps/example-react/)** - カスタムフック(`useSerialClient`)を使用した React の例
- **[Vue](apps/example-vue/)** - Composition API を使用した Vue 3 の例
- **[Svelte](apps/example-svelte/)** - Svelte Store を使用した Svelte の例
- **[Angular](apps/example-angular/)** - Service を使用した Angular の例
各例には、セットアップと使用方法の説明を含む README が含まれています。
## プロジェクトアイコンについて
このプロジェクトのアイコンには、[RxJS](https://rxjs.dev/) のロゴから着想を得たデザインに、
Web Serial を表すシリアルコネクタのモチーフを組み合わせたものを使用しています。
このアイコンは、本ライブラリが Web Serial API を RxJS ベースで扱うための
ライブラリであることを示す目的でのみ使用しています。
本プロジェクトは **[ReactiveX](http://reactivex.io/) / [RxJS](https://rxjs.dev/) 公式とは関係のない独立したオープンソースプロジェクト** であり、
公式な提携・承認・スポンサー関係はありません。
## 開発とリリース戦略
このプロジェクトは**trunk-based開発**アプローチに従います:
- **`main`ブランチ**: 常にリリース可能な状態
- **短命ブランチ**: `feature/*`, `fix/*`, `docs/*` はプルリクエスト用
- **リリース**: ブランチではなくGitタグ(例: `v1.0.0`)で管理
- **バージョン保守**: 複数のメジャーバージョンを保守する必要がある場合のみ `release/v*` ブランチを追加
詳細な貢献ガイドラインについては、[CONTRIBUTING.ja.md](CONTRIBUTING.ja.md) を参照してください。
詳細なリリース手順については、[RELEASING.ja.md](RELEASING.ja.md) を参照してください。
## 貢献
貢献を歓迎します!詳細については、[貢献ガイド](CONTRIBUTING.ja.md)を参照してください:
- 開発環境のセットアップ
- コードスタイルガイドライン
- コミットメッセージの規約
- プルリクエストのプロセス
- リリースプロセス
英語版の貢献ガイドは [CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。
リリース手順については、[RELEASING.ja.md](RELEASING.ja.md)(または英語版は [RELEASING.md](RELEASING.md))を参照してください。
## ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細は [LICENSE](LICENSE) ファイルを参照してください。
## リンク
- **GitHub リポジトリ**: [https://github.com/gurezo/web-serial-rxjs](https://github.com/gurezo/web-serial-rxjs)
- **イシュー**: [https://github.com/gurezo/web-serial-rxjs/issues](https://github.com/gurezo/web-serial-rxjs/issues)
- **Web Serial API 仕様**: [https://wicg.github.io/serial/](https://wicg.github.io/serial/)