Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	| # bufferutil | |
| [](https://www.npmjs.com/package/bufferutil) | |
| [](https://github.com/websockets/bufferutil/actions?query=workflow%3ACI+branch%3Amaster) | |
| `bufferutil` is what makes `ws` fast. It provides some utilities to efficiently | |
| perform some operations such as masking and unmasking the data payload of | |
| WebSocket frames. | |
| ## Installation | |
| ``` | |
| npm install bufferutil --save-optional | |
| ``` | |
| The `--save-optional` flag tells npm to save the package in your package.json | |
| under the | |
| [`optionalDependencies`](https://docs.npmjs.com/files/package.json#optionaldependencies) | |
| key. | |
| ## API | |
| The module exports two functions. | |
| ### `bufferUtil.mask(source, mask, output, offset, length)` | |
| Masks a buffer using the given masking-key as specified by the WebSocket | |
| protocol. | |
| #### Arguments | |
| - `source` - The buffer to mask. | |
| - `mask` - A buffer representing the masking-key. | |
| - `output` - The buffer where to store the result. | |
| - `offset` - The offset at which to start writing. | |
| - `length` - The number of bytes to mask. | |
| #### Example | |
| ```js | |
| 'use strict'; | |
| const bufferUtil = require('bufferutil'); | |
| const crypto = require('crypto'); | |
| const source = crypto.randomBytes(10); | |
| const mask = crypto.randomBytes(4); | |
| bufferUtil.mask(source, mask, source, 0, source.length); | |
| ``` | |
| ### `bufferUtil.unmask(buffer, mask)` | |
| Unmasks a buffer using the given masking-key as specified by the WebSocket | |
| protocol. | |
| #### Arguments | |
| - `buffer` - The buffer to unmask. | |
| - `mask` - A buffer representing the masking-key. | |
| #### Example | |
| ```js | |
| 'use strict'; | |
| const bufferUtil = require('bufferutil'); | |
| const crypto = require('crypto'); | |
| const buffer = crypto.randomBytes(10); | |
| const mask = crypto.randomBytes(4); | |
| bufferUtil.unmask(buffer, mask); | |
| ``` | |
| ## License | |
| [MIT](LICENSE) | |
