Microjob
A tiny wrapper for turning Node.js worker threads into easy-to-use routines for heavy CPU loads.
Install / Use
/learn @wilk/MicrojobREADME
Microjob
A tiny wrapper for turning Node.js threads in easy-to-use routines for CPU-bound.
Introduction
Microjob is a tiny wrapper for Node.js threads and is intended to perform heavy CPU loads using anonymous functions.
~~So, Microjob treats Node.js threads as temporary working units: if you need to spawn a long-living thread, then you should use the default API.~~
From version v0.1.0 microjob uses a Worker Pool 🎉
Microjob follows the same line of the original Node.js documentation: use it only for CPU-bound jobs and not for I/O-bound purposes. Quoting the documentation:
Workers are useful for performing CPU-intensive JavaScript operations; do not use them for I/O, since Node.js’s built-in mechanisms for performing operations asynchronously already treat it more efficiently than Worker threads can.
Microjob can be used with Node.js 12+ without flag. With Node.js 10.5+ you need the --experimental-worker flag activated, otherwise it won't work.
More details explained in: Microjob: a tiny multithreading library for Node.js
Installation
Via npm:
$ npm install --save microjob
Quick Example
(async () => {
const { job, start, stop } = require("microjob");
try {
// start the worker pool
await start();
// this function will be executed in another thread
const res = await job(() => {
let i = 0;
for (i = 0; i < 1000000; i++) {
// heavy CPU load ...
}
return i;
});
console.log(res); // 1000000
} catch (err) {
console.error(err);
} finally {
// shutdown worker pool
await stop();
}
})();
Features
- 🛢️ Worker Pool
- 🏥 auto self-healing
- 🙌 easy and simple
- 🕔 supports both sync and async jobs
- 🛡️ huge test coverage
- 📜 well documented
Documentation
Dive deep into the documentation to find more examples: Guide
Known Issues
Known Limitations
Related Skills
node-connect
335.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
335.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.7kCommit, push, and open a PR
