# What changed in tinypool

> 24 changes in tinypool 1 to 2 from its official release notes, upgrade guides and advisories: 2 breaking, 3 security, 11 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/npm/tinypool/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## tinypool 2

### Breaking changes

- Node 18 support was dropped, so projects using tinypool must use a supported Node.js version. (2.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v2.0.0)

### Security

- Tinypool: Prototype Pollution Gadget to RCE in run() options (2.1.2) — [security advisory](https://github.com/advisories/GHSA-85C8-PPGW-CCPR)
- Guards the worker filename against prototype pollution. (2.1.2) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v2.1.2)
- Worker options are guarded against prototype pollution. (2.1.1) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v2.1.1), [security advisory](https://github.com/advisories/GHSA-5GMW-XHRV-C9V3)

### New APIs and options

- Adds support for a serialization option when using the child_process runtime. (2.1.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v2.1.0)

### Performance

- tinypool uses availableParallelism instead of exec to determine parallelism. (2.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v2.0.0)

### Behavior and default changes

- The filename parameter now accepts a URL instance. (2.2.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v2.2.0)

## tinypool 1

### Breaking changes

- Changes the error type to unknown. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)

### New APIs and options

- Passes argv to child_process. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds support for isolateWorkers, allowing workers to be isolated; fixes also address queue handling and respecting minThreads in this mode. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds maxMemoryLimitBeforeRecycle options. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds physical-core support. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds a method to cancel pending tasks. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds a method to recycle workers. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Destroys idle workers when the runtime changes. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds support for the runtime option. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds the terminateTimeout option. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Adds WorkerId. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)

### Behavior and default changes

- Thread limits can be fractional; for example, minThreads: 0.5 uses 50% of available cores. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Uses the internal workerId for the child_process runtime. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)

### Fixes and other changes

- Kills a stuck process with SIGKILL and prevents writing to a terminating process. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Prevents new workers from writing to a closed pool. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Cleans up async resources when destroying the pool. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
- Uses the .default export of a worker module when it exists. (1.0.0) — [release notes](https://github.com/tinylibs/tinypool/releases/tag/v1.0.0)
