# bufferutil

[![Version npm](https://img.shields.io/npm/v/bufferutil.svg)](https://www.npmjs.com/package/bufferutil)
[![Linux/macOS Build](https://travis-ci.org/websockets/bufferutil.svg?branch=master)](https://travis-ci.org/websockets/bufferutil)
[![Windows Build](https://ci.appveyor.com/api/projects/status/github/websockets/bufferutil?branch=master&svg=true)](https://ci.appveyor.com/project/lpinca/bufferutil)

Buffer utils is one of the modules that makes `ws` fast. It's optimized for
certain buffer based operations such as merging buffers, generating WebSocket
masks and unmasking.

As the module consists of binary components, it should be used an
`optionalDependency` so when installation fails, it doesn't halt the
installation of your module. There are fallback files available in this
repository. See `fallback.js` for the suggest fallback implementation if
installation fails.

## Installation

```
npm install bufferutil
```

## API

In all examples we assume that you've already required the BufferUtil as
followed:

```js
'use strict';

var bu = require('bufferutil').BufferUtil;
```

The module exposes 3 different functions:

#### merge

Merge multiple buffers in the first supplied buffer argument:

```js
bu.merge(buffer, [buffer1, buffer2]);
```

This merges buffer1 and buffer2 which are in an array into buffer.

#### mask

Apply a WebSocket mask on the given data.

```js
bu.mask(buffer, mask);
```

#### unmask

Remove a WebSocket mask on the given data.;w

```js
bu.unmask(buffer, mask);
```

## License

[MIT](LICENSE)
