npm install @solid-primitives/workers
yarn add @solid-primitives/workers
pnpm add @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


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


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


Create a more advanced worker that accepts multiple instructional inputs:

const [input, setInput] = createSignal([1, 1]);
const [output, setOutput] = createSignal([1, 1]);
  output: setOutput,
  func: function add([a, b]) {
    return a + b;
setInput([1, 2]);
// output: 3


Live Site

You may view a working example here: [ link to Stackblize or CodeSandBox ]




Inspired by Jason Miller's worker function. Borrows the RPC and function export method.