awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
piscinajs avatar

piscinajs/piscina

0
View on GitHub↗
5,053 stars·156 forks·TypeScript·other·10 vuespiscinajs.dev↗

Piscina

Piscina is a Node.js worker thread pool that runs CPU-intensive JavaScript functions across multiple threads for parallel execution. It manages a dynamic pool of worker threads with configurable size, handling task submission, cancellation, and lifecycle management through a promise-based interface.

The pool supports AbortController-based task cancellation, enabling clean termination of submitted or running tasks without disrupting other work. It enforces per-worker memory limits through V8 resource caps and applies backpressure with a configurable maximum queue size that emits a drain event when capacity becomes available. Piscina allows pluggable queue ordering to replace the default FIFO behavior with custom priority or deadline logic, and supports pluggable load balancing algorithms for assigning tasks to workers. Transferable objects like binary buffers can be passed between threads with zero-copy messaging, reducing memory overhead during data transfer.

Additional capabilities include deferred worker readiness through an asynchronous initialization protocol, performance monitoring with run-time and wait-time histograms, thread priority control on Linux, and the ability to customize worker environment setup with native addon loading. Piscina exposes a straightforward API for submitting functions to workers and retrieving results, with documentation and install instructions available through its npm package.

Features

  • Local Worker Pools - Provides a configurable thread pool for parallel execution of CPU-intensive JavaScript functions.
  • AbortController-Based Cancellations - Ships AbortController-based cancellation that cleanly terminates tasks without disrupting other workers.
  • Custom Parallel Task Execution - Runs CPU-intensive tasks concurrently across multiple threads to improve throughput.
  • Task Lifecycle Management - Manages the full lifecycle of tasks from submission through cancellation and completion in a worker pool.
  • Worker Pool Management - Manages a dynamic pool of worker threads with configurable size for balancing throughput and resource usage.
  • Inter-Thread Data Transfers - Supports zero-copy transfer of binary buffers and transferable objects between worker threads.
  • Node.js Worker Thread Pools - Provides a Node.js worker thread pool for parallel execution of CPU-intensive JavaScript functions.
  • Task Execution Engines - Runs user-defined functions on worker threads with configurable pool sizes and custom queues.
  • Parallel Task Executors - Executes user-defined functions on separate worker threads with promise-based results.
  • Inter-Thread Communication - Provides zero-copy transfer of binary buffers between worker threads and the main process.
  • Backpressure Controllers - Limits queued tasks with a configurable maximum size and emits a drain event when capacity becomes available.
  • Backpressure Queues - Implements configurable queue size limits with a drain event for backpressure control.
  • Pluggable Ordering - Supports pluggable queue ordering to replace default FIFO with custom priority or deadline logic.
  • Worker Initialization Scripts - Provides a deferred worker readiness protocol that runs initialization tasks before accepting new work.
  • Custom Load Balancers - Allows replacing the built-in load balancing algorithm with a custom strategy for assigning tasks to workers.
  • Resource Limit Enforcements - Enforces per-worker heap memory limits using V8 resource caps to prevent memory exhaustion.
  • V8 Resource Caps - Enforces per-worker memory limits through V8 resource caps to prevent memory exhaustion.
  • Remote Task Cancellation - Supports abort-signal-based cancellation of submitted or running tasks in the worker pool.

Historique des stars

Graphique de l'historique des stars pour piscinajs/piscinaGraphique de l'historique des stars pour piscinajs/piscina

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Questions fréquentes

Que fait piscinajs/piscina ?

Piscina is a Node.js worker thread pool that runs CPU-intensive JavaScript functions across multiple threads for parallel execution. It manages a dynamic pool of worker threads with configurable size, handling task submission, cancellation, and lifecycle management through a promise-based interface.

Quelles sont les fonctionnalités principales de piscinajs/piscina ?

Les fonctionnalités principales de piscinajs/piscina sont : Local Worker Pools, AbortController-Based Cancellations, Custom Parallel Task Execution, Task Lifecycle Management, Worker Pool Management, Inter-Thread Data Transfers, Node.js Worker Thread Pools, Task Execution Engines.

Quelles sont les alternatives open-source à piscinajs/piscina ?

Les alternatives open-source à piscinajs/piscina incluent : dask/dask — Dask is a parallel computing framework and distributed task scheduler designed to scale Python data science workflows… hatchet-dev/hatchet — Hatchet is an open-source durable workflow engine and task orchestration platform. It provides a framework for… andywer/threads.js — threads.js is a JavaScript worker thread library and asynchronous task orchestrator designed to offload CPU-intensive… flyteorg/flyte — Flyte is a Kubernetes-based machine learning orchestrator and containerized pipeline manager designed for coordinating… prefecthq/prefect — Prefect is a workflow orchestration platform designed to define, schedule, and monitor complex data pipelines as… grpc/grpc — gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between…

Alternatives open source à Piscina

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Piscina.
  • dask/daskAvatar de dask

    dask/dask

    13,746Voir sur GitHub↗

    Dask is a parallel computing framework and distributed task scheduler designed to scale Python data science workflows from single machines to large clusters. It functions as a cluster resource manager that orchestrates computational logic by representing tasks and their dependencies as directed acyclic graphs. This architecture allows the system to automate the distribution of workloads across available hardware while managing complex execution requirements. The project distinguishes itself through a lazy evaluation engine that defers data operations until they are explicitly requested, enabl

    Pythondasknumpypandas
    Voir sur GitHub↗13,746
  • hatchet-dev/hatchetAvatar de hatchet-dev

    hatchet-dev/hatchet

    6,622Voir sur GitHub↗

    Hatchet is an open-source durable workflow engine and task orchestration platform. It provides a framework for building and executing fault-tolerant, multi-step pipelines as directed acyclic graphs (DAGs), with automatic retries, scheduling, and real-time observability. The system is built around durable task checkpointing, which persists execution state after each step so work can resume from the last checkpoint after a worker crash or restart, and it supports event-driven task resumption that pauses a task until a matching external event arrives. The platform distinguishes itself through it

    Goconcurrencydagdistributed
    Voir sur GitHub↗6,622
  • andywer/threads.jsAvatar de andywer

    andywer/threads.js

    3,526Voir sur GitHub↗

    threads.js is a JavaScript worker thread library and asynchronous task orchestrator designed to offload CPU-intensive tasks to background threads. It functions as a cross-platform worker pool and a TypeScript worker runner that automatically transpiles and executes TypeScript files within separate threads. The project distinguishes itself by providing a unified worker API that allows for cross-platform execution across different JavaScript environments. It includes a specialized worker data serialization tool to pass complex class instances and binary data between threads, and supports inlini

    TypeScriptisomorphic-javascriptjavascriptmultithreading
    Voir sur GitHub↗3,526
  • flyteorg/flyteAvatar de flyteorg

    flyteorg/flyte

    7,095Voir sur GitHub↗

    Flyte is a Kubernetes-based machine learning orchestrator and containerized pipeline manager designed for coordinating AI workflows and data pipelines. It functions as an engine for defining and executing resilient pipelines, utilizing a data lineage tracker to maintain immutable execution states and ensure reproducible outputs. The platform distinguishes itself by packaging individual tasks into separate containers to ensure dependency isolation and environment consistency. It provides specialized capabilities for machine learning, including the transformation of trained models into scalable

    Go
    Voir sur GitHub↗7,095
Voir les 30 alternatives à Piscina→