@solid-primitives/workers
v0.3.0
Published
Primitives that support creating Web Workers.
Downloads
183
Readme
@solid-primitives/workers
A set of utility to support using Web Workers and Shared Workers:
createWorker
- Provides a getter and setter for the primitive.
createWorkerPool
- Creates a pool of workers and round-robins requests between each.
createSignaledWorker
- Creates a work with that reads and writes to signals.
How to use it
createWorker
Create a basic web worker:
const [worker, start, stop] = createWorker(function add(a, b) {
return a + b;
});
console.log(await worker.add(1, 2));
// output: 3
createWorkerPool
Create a worker pool with a set concurrency:
const [pool, start, stop] = createWorkerPool(4, function add(a, b) {
return a + b;
});
console.log(await pool.add(1, 2));
// output: 3
createSignaledWorker
Create a more advanced worker that accepts multiple instructional inputs:
const [input, setInput] = createSignal([1, 1]);
const [output, setOutput] = createSignal([1, 1]);
createSignaledWorker({
input,
output: setOutput,
func: function add([a, b]) {
return a + b;
},
});
setInput([1, 2]);
console.log(output());
// output: 3
Demo
You may view a working example here: [ link to Stackblize or CodeSandBox ]
Changelog
See CHANGELOG.md
Inspiration
Inspired by Jason Miller's worker function. Borrows the RPC and function export method.