All Projects → metarhia → noroutine

metarhia / noroutine

Licence: MIT license
Goroutine analogue for Node.js, spreads I/O-bound routine calls to utilize thread pool (worker_threads) using balancer with event loop utilization. 🌱

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to noroutine

wasm-bindgen-rayon
An adapter for enabling Rayon-based concurrency on the Web with WebAssembly.
Stars: ✭ 257 (+198.84%)
Mutual labels:  concurrency, parallel, multithreading, threads
Go Concurrency
This repos has lots of Go concurrency, goroutine and channel usage and best practice examples
Stars: ✭ 84 (-2.33%)
Mutual labels:  concurrency, multithreading, goroutine
MultiHttp
This is a high performance , very useful multi-curl tool written in php. 一个超级好用的并发CURL工具!!!(httpful,restful, concurrency)
Stars: ✭ 79 (-8.14%)
Mutual labels:  concurrency, parallel, multithreading
Async
Async utilities for Golang.
Stars: ✭ 72 (-16.28%)
Mutual labels:  concurrency, parallel, goroutine
java-multithread
Códigos feitos para o curso de Multithreading com Java, no canal RinaldoDev do YouTube.
Stars: ✭ 24 (-72.09%)
Mutual labels:  concurrency, parallel, multithreading
go-worker-thread-pool
A visual working example of a Thread Pool pattern, based on a known blog article.
Stars: ✭ 24 (-72.09%)
Mutual labels:  concurrency, parallel, workers
thread-pool
BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library
Stars: ✭ 1,043 (+1112.79%)
Mutual labels:  concurrency, parallel, multithreading
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-79.07%)
Mutual labels:  concurrency, parallel, multithreading
Hamsters.js
100% Vanilla Javascript Multithreading & Parallel Execution Library
Stars: ✭ 517 (+501.16%)
Mutual labels:  concurrency, parallel, multithreading
Left Right
A lock-free, read-optimized, concurrency primitive.
Stars: ✭ 1,245 (+1347.67%)
Mutual labels:  concurrency, multithreading
So 5 5
SObjectizer: it's all about in-process message dispatching!
Stars: ✭ 87 (+1.16%)
Mutual labels:  concurrency, multithreading
Chymyst Core
Declarative concurrency in Scala - The implementation of the chemical machine
Stars: ✭ 142 (+65.12%)
Mutual labels:  concurrency, multithreading
Sorty
Fast Concurrent / Parallel Sorting in Go
Stars: ✭ 74 (-13.95%)
Mutual labels:  concurrency, parallel
Important Java Concepts
🚀 Complete Java - A to Z ║ 📚 Notes and Programs of all Important Concepts of Java - OOPS, Data Structures, Algorithms, Design Patterns & Development + Kotlin + Android 🔥
Stars: ✭ 135 (+56.98%)
Mutual labels:  concurrency, multithreading
Java Concurrency Examples
Java Concurrency/Multithreading Tutorial with Examples for Dummies
Stars: ✭ 173 (+101.16%)
Mutual labels:  concurrency, multithreading
Sobjectizer
An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. With performance, quality, and stability proved by years in the production.
Stars: ✭ 172 (+100%)
Mutual labels:  concurrency, multithreading
Evenk
A C++ library for concurrent programming
Stars: ✭ 68 (-20.93%)
Mutual labels:  concurrency, multithreading
Lightio
LightIO is a userland implemented green thread library for ruby
Stars: ✭ 165 (+91.86%)
Mutual labels:  concurrency, multithreading
Pht
A new threading extension for PHP
Stars: ✭ 175 (+103.49%)
Mutual labels:  concurrency, multithreading
IPpy
🚀 Ping IP addresses and domains in parallel to find the accessible and inaccessible ones.
Stars: ✭ 54 (-37.21%)
Mutual labels:  parallel, workers

Node Routine (noroutine)

ci status snyk npm version npm downloads/month npm downloads license

Goroutine analogue for Node.js, spreads I/O-bound routine (tasks) to utilize thread pool with worker_threads using balancer with event loop utilization (see perf_hooks API).

Usage

Install: npm install noroutine

const noroutine = require('noroutine');
const module1 = require('./module1.js');
const module2 = require('./module2.js');
noroutine.init({ modules: [module1, module2] });

(async () => {
  const res1 = await module1.method1('value1');
  const res2 = await module2.method2('value2');
  console.log({ res1, res2 });
})();

Initialization options

noroutine.init({
  modules: [module1, module2],
  pool: 5, // number of workers in thread pool
  wait: 2000, // maximum delay to wait for a free thread
  timeout: 5000, // maximum timeout for executing a functions
  monitoring: 5000, // event loop utilization monitoring interval
});

License & Contributors

Copyright (c) 2021-2022 Metarhia contributors. Noroutine is MIT licensed.
Noroutine is a part of Metarhia technology stack.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].