Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Puppeteer Pool, run a cluster of instances in parallel
| Date | Stars |
|---|---|
| 2026-07-24 | 3517 |
| 2026-07-25 | 3517 |
| 2026-07-28 | 3517 |
| 2026-07-30 | 3517 |
| 2026-08-06 | 3517 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Puppeteer Cluster
[](https://github.com/thomasdondorf/puppeteer-cluster/actions/workflows/actions.yml)
[](https://www.npmjs.com/package/puppeteer-cluster)
[](https://www.npmjs.com/package/puppeteer-cluster)
[](https://coveralls.io/github/thomasdondorf/puppeteer-cluster?branch=master)
[](https://snyk.io/test/github/thomasdondorf/puppeteer-cluster)
[](#license)
Create a cluster of puppeteer workers. This library spawns a pool of Chromium instances via [Puppeteer] and helps to keep track of jobs and errors. This is helpful if you want to crawl multiple pages or run tests in parallel. Puppeteer Cluster takes care of reusing Chromium and restarting the browser in case of errors.
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)
- [Concurrency implementations](#concurrency-implementations)
- [Typings for input/output (via TypeScript Generics)](#typings-for-inputoutput-via-typescript-generics)
- [Debugging](#debugging)
- [API](#api)
- [License](#license)
###### What does this library do?
* Handling of crawling errors
* Auto restarts the browser in case of a crash
* Can automatically retry if a job fails
* Different concurrency models to choose from (pages, contexts, browsers)
* Simple to use, small boilerplate
* Progress view and monitoring statistics (see below)
<p align="center">
<img src="https://i.imgur.com/koGNkBN.gif" height="250">
</p>
## Installation
Install using your favorite package manager:
```sh
npm install --save puppeteer # in case you don't already have it installed
npm install --save puppeteer-cluster
```
Alternatively, use `yarn`:
```sh
yarn add puppeteer puppeteer-cluster
```
## Usage
The following is a typical example of using puppeteer-cluster. A cluster is created with 2 concurrent workers. Then a task is defined which includes going to the URL and taking a screenshot. We then queue two jobs and wait for the cluster to finish.
```js
const { Cluster } = require('puppeteer-cluster');
(async () => {
const cluster = await Cluster.launch({
concurrency: Cluster.CONCURRENCY_CONTEXT,
maxConcurrency: 2,
});
await cluster.task(async ({ page, data: url }) => {
await page.goto(url);
const screen = await page.screenshot();
// Store screenshot, do something else
});
cluster.queue('http://www.google.com/');
cluster.queue('http://www.wikipedia.org/');
// many more pages
await cluster.idle();
await cluster.close();
})();
```
## Examples
* [Simple example](examples/minimal.js)
* [Wait for a task to be executed](examples/execute.js)
* [Minimal screenshot server with express](examples/express-screenshot.js)
* [Deep crawling the Google search results](examples/deep-google-crawler.js)
* [Crawling the Alexa Top 1 Million](examples/alexa-1m.js)
* [Queuing functions (simple)](examples/function-queuing-simple.js)
* [Queuing functions (complex)](examples/function-queuing-complex.js)
* [Error handling](examples/error-handling.js)
* [Using a different puppeteer library (like puppeteer-core or puppeteer-firefox)](examples/different-puppeteer-library.js)
* [Provide types for input/output with TypeScript generics](examples/typings.ts)
## Concurrency implementations
There are different concurrency models, which define how isolated each job is run. You can set it in the `options` when calling [Cluster.launch](#Clusterlaunchoptions). The default option is `Cluster.CONCURRENCY_CONTEXT`, but it is recommended to always specify which one you want to use.
| Concurrency | DExcerpt of 16,659 characters
Read on GitHub316
38
3
Hugo Poissonnet · @Doctolib
3
3
2
1
1
APN Carmine · Apocalypse NETWORK · Italy
1
Haseeb Khan · Pakistan
1
1
1
1
김병창
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:9b55e4bedee9874f, topic:puppeteer