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);
}
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 freestartPort
: 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