dahlia-concurrency
v1.0.1
Published
High-level concurrency primitives and patterns for Node.js using worker_threads (queues, semaphore, mutex, worker pool, scheduler, and more)
Maintainers
Readme
Dahlia Concurrency — Documentation
Lightweight concurrency and parallelism toolkit for Node.js built on worker_threads.
- Repository: https://github.com/hhuziuk/dahlia
- npm: https://www.npmjs.com/package/dahlia-concurrency
What’s inside
- Primitives:
Mutex,RwLock,CountingSemaphore,BinarySemaphore,WorkerPool - Data structures:
ConcurrentQueue,ConcurrentPriorityQueue,ConcurrentDeque,ConcurrentStack,ConcurrentSet - Methods:
parallelPipeline(...),parallelQuickSort(...)and quick-sort utilities - Task scheduler:
Scheduler
Install
npm install dahlia-concurrencyQuick start
const {
Mutex,
WorkerPool,
Scheduler,
ConcurrentQueue,
parallelPipeline,
} = require('dahlia-concurrency');
const mutex = new Mutex();
const q = new ConcurrentQueue();
q.enqueue(1); q.enqueue(2);
const pool = new WorkerPool(2, require('node:path').resolve(__dirname, 'worker.js'));
const scheduler = new Scheduler(2, require('node:path').resolve(__dirname, 'handlers.js'));
scheduler.start();