Pambdajs
Parallelized Lambda, the wrapper to help run lambda/anonymous function in parallel. 🚀
Install / Use
/learn @tim-hub/PambdajsREADME
PambdaJS - Multi-Process Has Never Been This Easy
Parallelized Lambda, a wrapper to help run lambda/anonymous function in parallel easily.
PambdaJS is to orchestrate different child process to finish one heavy iteration work.
- make multi process programming easily
- gain better performance through empowering multi core CPU
Start to use PambdaJS
import pambda from 'pambdajs';
const p = await pambda.init(5);
data = [1,2,3];
const heavyWork = (x) => {
return x+x;
}
// original single process way
const singleProcess = () => {
data.map(heavyWork);
}
// PambdaJS multi process way
const pambdaProcess = async () => {
await p.map(heavyWork, data);
}
Features
Run your own anonymous functions in Parallel.
- map
- filter
- reduce
Limit
The lambda function itself has to be a pure function, and it has to use only node build-in packages.
for example:
// good
const heavyWork = (x) => {
return x+x;
}
// bad
const sumItSelf = (x) => {
return x + x;
}
const heavyWork = (x) => {
return sumItSelf(x)
}
Performance
- PambdaJS can save up to 55% of processing time. (Diagram ↓)
As you can see the above.
-
The best case to repeat summing 10k number 100k times, is to spawn 5 child process, and it saves more than half of time than single process.
-
Besides, for simple work, multi process does not help at all. So make sure usig PambdaJS for heavy work only. (more diagrams)
FAQ
- Why not use child process directly?
Yeah, why not. child_process is the native module of Node, if you seek better flexibility, use child_process. However, if you want to make your life easier, trust me use PambdaJS, you do not need to worry about the message between child and parent process anymore.
- Does it run on browser as well?
No, PambdaJS is a tool for Node environment, not for browser, because browser does not support multi-process, but you can try web worker which is multi-thread solution. or Gpu.js which is using GPU instead of CPU for getting better performance.
Reference
- What is Lambda Function
- Other solutions for better performance
- Child Process
- GPU.js
- Web Worker for multi threading. We all love MDN!!!
- Based on Web Worker/ Multi Thread
- Relative Repos
- PambdaJS Playground - the place to use pambdajs to run some simple sample work
- PambdaJS Performance Analyse - using Chart.js to generate the diagrams
- Code of conduct
- Contributing
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate 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
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
