Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/takamin/transworker

Inter-thread procedure call with JavaScript WebWorker
https://github.com/takamin/transworker

javascript multithreading npm-module web-worker webworker

Last synced: 25 days ago
JSON representation

Inter-thread procedure call with JavaScript WebWorker

Awesome Lists containing this project

README

        

transworker - WebWorkerをメソッド呼び出し感覚で利用するモジュール
=================================================================

![](image/readme_top.png "TransWorker")
photo credit: Pallet
via photopin
(license)

概要
----

TransWorkerは __WebWorkerによるJavaScriptのマルチスレッドを手軽に使えるようにするモジュール__ です。

ユーザーが作成したクラスのインスタンスをワーカースレッド側で生成し、
そのクラスのインスタンスメソッドをメインスレッド側からリモート呼び出しできるようにします。

機能
----

### インスタンスメソッドをスレッド間リモート呼び出しに変換

メインスレッドではユーザー定義クラスのプロトタイプを読み取り、
スレッド間メッセージを送信する同名のラッパーメソッドを生成します。

ワーカスレッド側では、このメッセージを受信すると、クラスインスタンスのメソッドを呼び出して、
その戻り値をスレッド間メッセージでメインスレッドへ戻します。

### その他の機能

* ワーカースレッド側からメインスレッドへ通知メッセージを発行。
* メインスレッドからワーカースレッドへのTransferableオブジェクトの移譲(⇒[Transferable - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/Transferable))。
* WebWorkerは DedicatedWorker と SharedWorker に対応しています。

### リンク

* [JSDoc: Class: TransWorker](https://takamin.github.io/transworker/docs/TransWorker.html)
* [/sample/](https://github.com/takamin/transworker/tree/master/sample)
* [サンプルページ](https://takamin.github.io/transworker/sample/)

利用方法
--------

### バンドラー利用の場合

```bash
npm install --save transworker
```

```javascript
const TransWorker = require("transworker");
```

### HTMLで直接読み込む場合

バンドラーを使用しない場合は、ビルド済みの transworker.js を読み込みます。
TransWorker クラスが利用可能です。

```xml

```

最新のビルド済みスクリプトを https://takamin.github.io/transworker/transworker.js で公開しています。

LICENSE
-------

MIT