Hey everyone π
I've been working on a side project called *ComputeKit *- a small library that makes it easier to run heavy computations in Web Workers with React hooks.
The problem I was trying to solve:
I was working on an app that needed to process images client-side, and my UI kept freezing. Setting up Web Workers manually was painful - separate files, postMessage boilerplate, managing state... it felt like too much ceremony for something that should be simple.
What I built:
// Register a heavy function once
kit.register('processData', (data) => {
// This runs in a Web Worker, not the main thread
return heavyComputation(data);
});
// Use it like any other async operation
const { data, loading, error, run } = useCompute('processData');
Features:
React hooks with loading/error states out of the box
Automatic worker pool (uses available CPU cores)
Optional WASM support for extra performance
TypeScript support
~3KB gzipped
What I'm looking for:
Honest feedback - is this useful or am I solving a problem nobody has?
Bug reports if you try it
Ideas for improvements
Contributors welcome if anyone's interested!
Links:
GitHub: ComputeKit Repo
Live demo: ComputeKit Demo
NPM: ComputeKit/Core | ComputeKit/React
This is my first open source library so I'd really appreciate any feedback, even if it's "this already exists" or "you're doing X wrong". Thanks for reading! π
Top comments (0)