All Projects → microsoft → Napajs

microsoft / Napajs

Licence: other
Napa.js: a multi-threaded JavaScript runtime

Programming Languages

javascript
184084 projects - #8 most used programming language
C++
36643 projects - #6 most used programming language
typescript
32286 projects
CMake
9771 projects

Projects that are alternatives of or similar to Napajs

Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-99.8%)
Mutual labels:  runtime, parallel, multithreading
MultiHttp
This is a high performance , very useful multi-curl tool written in php. 一个超级好用的并发CURL工具!!!(httpful,restful, concurrency)
Stars: ✭ 79 (-99.12%)
Mutual labels:  parallel, multithreading
pblat
parallelized blat with multi-threads support
Stars: ✭ 34 (-99.62%)
Mutual labels:  parallel, multithreading
Poshrsjob
Provides an alternative to PSjobs with greater performance and less overhead to run commands in the background, freeing up the console and allowing throttling on the jobs.
Stars: ✭ 447 (-95%)
Mutual labels:  parallel, multithreading
wasm-bindgen-rayon
An adapter for enabling Rayon-based concurrency on the Web with WebAssembly.
Stars: ✭ 257 (-97.13%)
Mutual labels:  parallel, multithreading
NPB-CPP
NAS Parallel Benchmark Kernels in C/C++. The parallel versions are in FastFlow, TBB, and OpenMP.
Stars: ✭ 18 (-99.8%)
Mutual labels:  parallel, multi-core
Actix Net
A collection of lower-level libraries for composable network services.
Stars: ✭ 415 (-95.36%)
Mutual labels:  multithreading, runtime
noroutine
Goroutine analogue for Node.js, spreads I/O-bound routine calls to utilize thread pool (worker_threads) using balancer with event loop utilization. 🌱
Stars: ✭ 86 (-99.04%)
Mutual labels:  parallel, multithreading
Ems
Extended Memory Semantics - Persistent shared object memory and parallelism for Node.js and Python
Stars: ✭ 552 (-93.83%)
Mutual labels:  parallel, multithreading
Taskflow
A General-purpose Parallel and Heterogeneous Task Programming System
Stars: ✭ 6,128 (-31.49%)
Mutual labels:  multithreading, parallel
Raftlib
The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators
Stars: ✭ 717 (-91.98%)
Mutual labels:  parallel, runtime
kafka-workers
Kafka Workers is a client library which unifies records consuming from Kafka and processing them by user-defined WorkerTasks.
Stars: ✭ 30 (-99.66%)
Mutual labels:  parallel, multithreading
java-multithread
Códigos feitos para o curso de Multithreading com Java, no canal RinaldoDev do YouTube.
Stars: ✭ 24 (-99.73%)
Mutual labels:  parallel, multithreading
thread-pool
BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library
Stars: ✭ 1,043 (-88.34%)
Mutual labels:  parallel, multithreading
Openmp Examples
openmp examples
Stars: ✭ 64 (-99.28%)
Mutual labels:  parallel, multithreading
Weave
A state-of-the-art multithreading runtime: message-passing based, fast, scalable, ultra-low overhead
Stars: ✭ 305 (-96.59%)
Mutual labels:  multithreading, runtime
pooljs
Browser computing unleashed!
Stars: ✭ 17 (-99.81%)
Mutual labels:  parallel, multithreading
Hamsters.js
100% Vanilla Javascript Multithreading & Parallel Execution Library
Stars: ✭ 517 (-94.22%)
Mutual labels:  parallel, multithreading
Nexusjs
Nexus.js - The next-gen JavaScript platform
Stars: ✭ 1,073 (-88%)
Mutual labels:  multithreading, runtime
Pelagia
Automatic parallelization (lock-free multithreading thread) tool developed by Surparallel Open Source.Pelagia is embedded key value database that implements a small, fast, high-reliability on ANSI C.
Stars: ✭ 1,132 (-87.34%)
Mutual labels:  parallel, multithreading

Build Status for Linux/MacOS Build Status for Windows npm version Downloads

Napa.js

Napa.js is a multi-threaded JavaScript runtime built on V8, which was originally designed to develop highly iterative services with non-compromised performance in Bing. As it evolves, we find it useful to complement Node.js in CPU-bound tasks, with the capability of executing JavaScript in multiple V8 isolates and communicating between them. Napa.js is exposed as a Node.js module, while it can also be embedded in a host process without Node.js dependency.

Installation

Install the latest stable version:

npm install napajs

Other options can be found in Build Napa.js.

Quick Start

const napa = require('napajs');
const zone1 = napa.zone.create('zone1', { workers: 4 });

// Broadcast code to all 4 workers in 'zone1'.
zone1.broadcast('console.log("hello world");');

// Execute an anonymous function in any worker thread in 'zone1'.
zone1.execute(
    (text) => text, 
    ['hello napa'])
    .then((result) => {
        console.log(result.value);
    });

More examples:

Features

  • Multi-threaded JavaScript runtime.
  • Node.js compatible module architecture with NPM support.
  • API for object transportation, object sharing and synchronization across JavaScript threads.
  • API for pluggable logging, metric and memory allocator.
  • Distributed as a Node.js module, as well as supporting embed scenarios.

Documentation

Contribute

You can contribute to Napa.js in following ways:

  • Report issues and help us verify fixes as they are checked in.
  • Review the source code changes.
  • Contribute to core module compatibility with Node.
  • Contribute bug fixes.

This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the MIT License.

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].