# typedarray-pool

> Reuse typed arrays

Latest version **1.2.0** (published 2020-01-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install typedarray-pool
pnpm add typedarray-pool
yarn add typedarray-pool
bun add typedarray-pool
```

## Health

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

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.0 |
| Published | 2020-01-05 |
| First published | 2013-05-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/typedarray-pool) |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 15.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 76 |
| Author | Mikola Lysenko |
| Maintainers | mikolalysenko |
| Keywords | typed, array, cache, pool, memory, malloc, free, reuse, optimize, construct, overhead |

## Links

- npm: https://www.npmjs.com/package/typedarray-pool
- Repository: https://github.com/mikolalysenko/typedarray-pool
- Homepage: https://github.com/mikolalysenko/typedarray-pool#readme
- Issues: https://github.com/mikolalysenko/typedarray-pool/issues
- npm.io page: https://npm.io/package/typedarray-pool

## Dependencies (2)

- [dup](https://npm.io/package/dup.md) ^1.0.0
- [bit-twiddle](https://npm.io/package/bit-twiddle.md) ^1.0.0

## Alternatives

- [memory-cache](https://npm.io/package/memory-cache.md) — 795.0K weekly downloads
- [@httptoolkit/proxy-agent](https://npm.io/package/@httptoolkit/proxy-agent.md) — 11.2K weekly downloads
- [express-cache-controller](https://npm.io/package/express-cache-controller.md) — 5.3K weekly downloads
- [http-cache-middleware](https://npm.io/package/http-cache-middleware.md) — 4.5K weekly downloads
- [cache2](https://npm.io/package/cache2.md) — 1.5K weekly downloads

## Recent versions

- 1.2.0 (latest) — 2020-01-05
- 1.1.0 — 2014-09-27
- 1.0.2 — 2014-05-28
- 1.0.1 — 2014-04-28
- 1.0.0 — 2014-03-26
- 0.1.2 — 2013-11-28
- 0.1.1 — 2013-05-15
- 0.1.0 — 2013-05-14
- 0.0.1 — 2013-05-13
- 0.0.0 — 2013-05-13

## README

typedarray-pool
===============
A global pool for typed arrays.

[![testling badge](https://ci.testling.com/mikolalysenko/typedarray-pool.png)](https://ci.testling.com/mikolalysenko/typedarray-pool)

[![build status](https://secure.travis-ci.org/mikolalysenko/typedarray-pool.png)](http://travis-ci.org/mikolalysenko/typedarray-pool)

# Example

```javascript
var pool = require("typedarray-pool")

//Allocate a buffer with at least 128 floats
var f = pool.malloc(128, "float")

// ... do stuff ...

//When done, release buffer
pool.free(f)
```

# Install

    npm install typedarray-pool

# API

```javascript
var pool = require("typedarray-pool")
```

### `pool.malloc(n[, dtype])`
Allocates a typed array (or ArrayBuffer) with at least n elements.

* `n` is the number of elements in the array
* `dtype` is the data type of the array to allocate.  Must be one of:

  + `"uint8"`
  + `"uint16"`
  + `"uint32"`
  + `"int8"`
  + `"int16"`
  + `"int32"`
  + `"float"`
  + `"float32"`
  + `"double"`
  + `"float64"`
  + `"arraybuffer"`
  + `"data"`
  + `"uint8_clamped"`
  + `"bigint64"`
  + `"biguint64"`
  + `"buffer"`

**Returns** A typed array with at least `n` elements in it.  If `dtype` is undefined, an ArrayBuffer is returned.

**Note**  You can avoid the dispatch by directly calling one of the following methods:

* `pool.mallocUint8`
* `pool.mallocUint16`
* `pool.mallocUint32`
* `pool.mallocInt8`
* `pool.mallocInt16`
* `pool.mallocInt32`
* `pool.mallocFloat`
* `pool.mallocDouble`
* `pool.mallocArrayBuffer`
* `pool.mallocDataView`
* `pool.mallocUint8Clamped`
* `pool.mallocBigInt64`
* `pool.mallocBigUint64`
* `pool.mallocBuffer`

### `pool.free(array)`
Returns the array back to the pool.

* `array` The array object to return to the pool.

**Note** You can speed up the method if you know the type of array before hand by calling one of the following:

* `pool.freeUint8`
* `pool.freeUint16`
* `pool.freeUint32`
* `pool.freeInt8`
* `pool.freeInt16`
* `pool.freeInt32`
* `pool.freeFloat`
* `pool.freeDouble`
* `pool.freeArrayBuffer`
* `pool.freeDataView`
* `pool.freeUint8Clamped`
* `pool.freeBigInt64`
* `pool.freeBigUint64`
* `pool.freeBuffer`

### `pool.clearCache()`
Removes all references to cached arrays.  Use this when you are done with the pool to return all the cached memory to the garbage collector.

# Credits
(c) 2014 Mikola Lysenko. MIT License

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