Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/smikhalevski/object-pool

🤿 The tiny and efficient object pool.
https://github.com/smikhalevski/object-pool

caching object-pool performance

Last synced: 4 days ago
JSON representation

🤿 The tiny and efficient object pool.

Awesome Lists containing this project

README

        

# object-pool [![build](https://github.com/smikhalevski/object-pool/actions/workflows/master.yml/badge.svg?branch=master&event=push)](https://github.com/smikhalevski/object-pool/actions/workflows/master.yml)

[The tiny](https://bundlephobia.com/package/@smikhalevski/object-pool) and efficient object pool.

This implementation was inspired by [deePool](https://github.com/getify/deePool) and is slightly faster than the
original.

```shell
npm install @smikhalevski/object-pool
```

# Usage

```ts
import {ObjectPool} from '@smikhalevski/object-pool';

const pool = new ObjectPool(() => {
// Create and return a heavy object.
}, (value) => {
// Reset the released object.
});

// Prepare 100 heavy objects.
pool.allocate(100);

// Take a heavy object from the pool.
const heavyObject = pool.take();

// Return heavy object back to the pool.
pool.release(heavyObject);
```