<img src="./images/logo.png" width="340px" height="266px"/>
</div>
-<h2 align="center">Node Thread Pool and Cluster Pool :arrow_double_up: :on:</h2>
+<h1 align="center">Node.js Worker_Threads and Cluster Worker Pool</h1>
<p align="center">
<a href="https://github.com/poolifier/poolifier/graphs/commit-activity">
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=pioardi_poolifier&metric=sqale_index)](https://sonarcloud.io/dashboard?id=pioardi_poolifier)
- Code security [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=pioardi_poolifier&metric=security_rating)](https://sonarcloud.io/dashboard?id=pioardi_poolifier) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=pioardi_poolifier&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=pioardi_poolifier)
-## Contents
-
-<h3 align="center">
- <a href="#overview">Overview</a>
- <span> · </span>
- <a href="#installation">Installation</a>
- <span> · </span>
- <a href="#usage">Usage</a>
- <span> · </span>
- <a href="#node-versions">Node versions</a>
- <span> · </span>
- <a href="#api">API</a>
- <span> · </span>
- <a href="#general-guidelines">General guidelines</a>
- <span> · </span>
- <a href="#contribute">Contribute</a>
- <span> · </span>
- <a href="#team">Team</a>
- <span> · </span>
- <a href="#license">License</a>
-</h3>
+## Table of contents
+
+- [Overview](#overview)
+- [Installation](#installation)
+- [Usage](#usage)
+- [Node versions](#node-versions)
+- [API](#api)
+- [General guidelines](#general-guidelines)
+- [Worker choice strategies](#worker-choice-strategies)
+- [Contribute](#contribute)
+- [Team](#team)
+- [License](#license)
## Overview
You can do the same with the classes _ClusterWorker_, _FixedClusterPool_ and _DynamicClusterPool_.
-**See [examples](./examples/) folder for more details (in particular if you want to use a pool with [multiple task functions](./examples/multiFunctionExample.js))**.
+**See [examples](./examples/) folder for more details**:
+
+- [Javascript](./examples/javascript/)
+- [Typescript](./examples/typescript/)
+ - [HTTP client pool](./examples/typescript/http-client-pool/)
+ - [HTTP server pool](./examples/typescript/http-server-pool/)
+ - [Express worker_threads pool](./examples/typescript/http-server-pool/express-worker_threads/)
+ - [Fastify worker_threads pool](./examples/typescript/http-server-pool/fastify-worker_threads/)
+ - [Fastify cluster pool](./examples/typescript/http-server-pool/fastify-cluster/)
+ - [Fastify hybrid pool](./examples/typescript/http-server-pool/fastify-hybrid/)
+ - [WebSocket server pool](./examples/typescript/websocket-server-pool/)
+ - [ws worker_threads pool](./examples/typescript/websocket-server-pool/ws-worker_threads/)
+ - [ws cluster pool](./examples/typescript/websocket-server-pool/ws-cluster/)
+ - [ws hybrid pool](./examples/typescript/websocket-server-pool/ws-hybrid/)
Remember that workers can only send and receive structured-cloneable data.
## [API](./docs/api.md)
-## [General Guidelines](./docs/general-guidelines.md)
+## [General guidelines](./docs/general-guidelines.md)
+
+## [Worker choice strategies](./docs/worker-choice-strategies.md)
## Contribute