# fluster

> simplify the use of node's cluster module

Latest version **0.0.15** (published 2017-01-18) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install fluster
pnpm add fluster
yarn add fluster
bun add fluster
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.15 |
| Published | 2017-01-18 |
| First published | 2016-06-12 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Ant Cosentino |
| Maintainers | antino |
| Keywords | cluster |

## Links

- npm: https://www.npmjs.com/package/fluster
- npm.io page: https://npm.io/package/fluster

## Recent versions

- 0.0.15 (latest) — 2017-01-18
- 0.0.14 — 2016-08-15
- 0.0.13 — 2016-08-11
- 0.0.12 — 2016-08-11
- 0.0.11 — 2016-08-11
- 0.0.10 — 2016-08-11
- 0.0.9 — 2016-08-11
- 0.0.8 — 2016-08-11
- 0.0.7 — 2016-08-10
- 0.0.6 — 2016-08-10
- 0.0.5 — 2016-08-10
- 0.0.4 — 2016-08-10
- 0.0.3 — 2016-08-10
- 0.0.2 — 2016-06-13
- 0.0.1 — 2016-06-12
- … 1 more at https://npm.io/package/fluster/versions

## README

# fluster [![Build Status](https://travis-ci.org/skibz/fluster.svg?branch=master)](https://travis-ci.org/skibz/fluster) [![Test Coverage](https://codeclimate.com/github/skibz/fluster/badges/coverage.svg)](https://codeclimate.com/github/skibz/fluster/coverage)

fluster is a friendly wrapper for node's [cluster](http://devdocs.io/node-cluster/) module. it allows you to schedule any number of threads and seed them with data via ipc at boot or at intervals.

##### example

```javascript
var fluster = require('fluster')
var mycluster = fluster({
  cluster: {
    // bind arbitrary cluster events
    on: {
      // message
      // online
      // exit
      // disconnect
      // fork
      // setup
      // listening
    }
  },
  workers: {
    // select a script to run in many threads
    exec: 'my-worker.js',
    // workers respawn with values from `workers.data` by default
    respawn: false,
    // omit `workers.limit` to scale to your cpu core count
    limit: 5,
    // each key in this object will trigger a process#onmessage event in your worker
    data: {
      somedata: {
        value: [1, 2, 3, 4, 5, 6]
      },
      someotherdata: {
        every: 1000 * 60 * 60,
        exec: function(send) {
          businesslogic(function(err, res) {
            // store the value for posterity
            this.value = res || this.value
            send(err, res)
          }.bind(this))
        }
      },
      // specify an event emitter and functions to transform the
      // data that gets sent to workers when the event is emitted
      myemitter: {
        on: {
          data: function(data) {
            return data.toString('utf8')
          }
        },
        of: getAnEventEmitterSomehow()
      }
    },
    // bind arbitrary worker events
    on: {
      // message
      // online
      // exit
      // disconnect
      // fork
      // error
      // listening
    }
  }
})
```

---
_Source: https://npm.io/package/fluster · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
