port-selector 0.1.2

port availability checking and port filtering based on conditions
Documentation

Language : 🇺🇸 English | 🇨🇳 简体中文

Build Status Crates Downloads Last Commit

Docs GitHub Actions CI LICENSE

Overview

port-selector is a rust library that mainly provides port availability checking and port filtering based on conditions.

Install

  1. Get the latest version -> https://crates.io/crates/port-selector

  2. Add the dependent

[dependencies]
port-selector = "x.x.x"
  1. use
use port_selector::{is_free, Port};

fn main() {
    let check_port: Port = 3000;
    println!("is_free({}) = {}", check_port, is_free(check_port));
}

Goods

type -> Port · Selector

fn -> is_free_tcp · is_free_udp · is_free · random_free_tcp_port · random_free_udp_port · random_free_port · select_from_given_port · select_free_port

Documentation

Port

u16 type alias

pub type Port = u16;

Selector

The select_free_port requires a structure passed in

pub struct Selector {
    // Check whether the port is available on TCP.
    // The default value is true.
    check_tcp: bool,
    // Check whether the port is available on UDP.
    // The default value is true.
    check_udp: bool,
    // Set the range of generated ports, default (0, 65525)
    port_range: (u16, u16),
    // Maximum number of random times. Default value: 100
    // If no available port number is found within the maximum random number of loops, None is returned
    max_random_times: u16,
}

is_free_tcp

Check whether the port is not used on TCP

pub fn is_free_udp(port: Port) -> bool

is_free_udp

Check whether the port is not used on UDP

pub fn is_free_udp(port: Port) -> bool

is_free

Check whether the port is not used on TCP and UDP

pub fn is_free(port: Port) -> bool

random_free_tcp_port

The system randomly assigns available TCP ports

pub fn random_free_tcp_port() -> Option<Port>

random_free_udp_port

The system randomly assigns available UDP ports

pub fn random_free_udp_port() -> Option<Port>

random_free_port

The system randomly assigns available TCP and UDP ports

pub fn random_free_port() -> Option<Port>

select_from_given_port

Check from given_port and return the first available port

Return if given_port is available; Otherwise given_port += given_port until the port is available

pub fn select_from_given_port(given_port: Port) -> Option<Port>

select_free_port

Gets a matching port based on the Selector parameter constraint

pub fn select_free_port(selector: Selector) -> Option<Port>

Thanks

portpicker-rs