inet_free_port

A lightweight Erlang/OTP library for finding free TCP and UDP ports within a specified range.

The library runs as an OTP application with a supervisor and one or more gen_server workers, each responsible for managing port allocation.

Hex Version

Installation

The package can be installed by adding inet_free_port to your list of dependencies in rebar.config:

{deps, [inet_free_port]}.

Features

Configuration

The library uses application environment variables to define port pools.

Example (config/sys.config):

[
  {inet_free_port, [
    {free_port_server1, [
        {tcp, {30000, 31000}},
        {udp, {31000, 32000}}
    ]}
  ]}
].

Each entry creates a separate worker(inet_free_port) under the supervisor(inet_free_port_sup).

Basic usage

Start application

application:start(inet_free_port).

Get a free TCP port

inet_free_port:get_port(free_port_server1, tcp).

Get a free UDP port

inet_free_port:get_port(free_port_server1, udp).

Default (TCP)

inet_free_port:get_port(free_port_server1).

With timeout

inet_free_port:get_port(free_port_server1, tcp, 2000).