Socket
Socket
Sign inDemoInstall

tinypool

Package Overview
Dependencies
0
Maintainers
3
Versions
28
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    tinypool

A minimal and tiny Node.js Worker Thread Pool implementation, a fork of piscina, but with fewer features


Version published
Weekly downloads
4.2M
decreased by-1.1%
Maintainers
3
Install size
50.4 kB
Created
Weekly downloads
 

Package description

What is tinypool?

The tinypool npm package is a minimalistic thread pool implementation for Node.js. It allows you to offload tasks to worker threads, which can improve the performance of CPU-intensive operations in a Node.js application by taking advantage of multi-threading.

What are tinypool's main functionalities?

Creating a thread pool

This feature allows you to create a thread pool with a specified number of worker threads. The 'task' option points to a JavaScript file that will be executed in the worker threads.

const { StaticPool } = require('tinypool');
const pool = new StaticPool({
  size: 4,
  task: './worker.js'
});

Running tasks in the pool

Once a thread pool is created, you can run tasks by passing data to the 'run' method. The method returns a promise that resolves with the result of the task executed in the worker thread.

pool.run({ some: 'data' }).then(result => {
  console.log(result);
});

Destroying the pool

When you are done with the thread pool, you can call the 'destroy' method to terminate all the worker threads and free up resources.

pool.destroy();

Other packages similar to tinypool

Readme

Source

Tinypool - the node.js worker pool 🧵

Piscina: A fast, efficient Node.js Worker Thread Pool implementation

Tinypool is a fork of piscina. What we try to achieve in this library, is to eliminate some dependencies and features that our target users don't need (currently, our main user will be Vitest). Tinypool's install size (38KB) can then be smaller than Piscina's install size (6MB). If you need features like utilization or NAPI, Piscina is a better choice for you. We think that Piscina is an amazing library, and we may try to upstream some of the dependencies optimization in this fork.

  • ✅ Smaller install size, 38KB

  • ✅ Minimal

  • ✅ No dependencies

  • ✅ Physical cores instead of Logical cores with physical-cpu-count

  • ✅ Supports worker_threads and child_process

  • ❌ No utilization

  • ❌ No NAPI

  • Written in TypeScript, and ESM support only. For Node.js 14.x and higher.

In case you need more tiny libraries like tinypool or tinyspy, please consider submitting an RFC

Docs

Read full docs on GitHub.

Keywords

FAQs

Last updated on 25 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc