find-free-ports

Find multiple free ports on localhost

Usage no npm install needed!

<script type="module">
  import findFreePorts from 'https://cdn.skypack.dev/find-free-ports';
</script>

README

Build Status

This is a very small package that allows developers to find free ports on the local system. Unlike most other "find-free-port" utilities, this library allows scanning for multiple free ports at once, making sure that there are no doubles in the result.

✔️ TypeScript support

✔️ No dependencies

✔️ Should work on all major NodeJS versions

✔️ Now automatically tested for mistakes

This library has been benchmarked and parallelises the port checks using a customisable number of workers for optimal performance. The alogithm does not create a new anonymous socket for each port, but instead iterates in parallell over the system's port numbers. This is both faster and less resource-intensive.

🔍 Found an issue? Please let me know in the issue tracker and we'll get it fixed ASAP.

npm i find-free-ports

Usage

Import the library:

import findFreePorts from "find-free-ports"

or

const findFreePorts = require('find-free-ports');

Next, call the main function with the amount of free ports you need:

async function startMultipleServers() {
  const [a, b, c, d] = await findFreePorts(4);
  // now do something interesting with the new ports ...
}

API

findFreePorts(count?, opts?)

import { findFreePorts } from "find-free-ports"

Search for the specified amount of free ports on the local machine. If count is left unspecified, it defaults to 1. opts may be a dictionary containing one of the following keys:

  • isFree: custom function that is used to check whether the given port is free
  • startPort: start scanning for free ports starting from this port number. Defaults to 1025.
  • endPort: prevent the scanner from exceeding this port number. Defaults to 65535.
  • jobCount: how much workers that may at most be looking for free ports

isFreePort(port)

import { isFreePort } from "find-free-ports"

Check whether the given port is free by trying to set up a socket.

This function returns a promise containing either true or false depending on whether the port was available.

FindFreePortsOptions

import { FindFreePortsOptions } from "find-free-ports"

A TypeScript interface that lists all valid options that may be passed as the opts parameter to findFreePorts().

Similar Packages

License

The MIT License