#check #port #free

port-selector

port-selector is a rust library that provides port availability checking, port filtering based on conditions and occupy specified ports

6 releases

0.1.6 May 12, 2022
0.1.5 May 11, 2022
0.1.3 Apr 30, 2022

#1036 in Network programming

Download history 779/week @ 2024-07-24 776/week @ 2024-07-31 608/week @ 2024-08-07 610/week @ 2024-08-14 473/week @ 2024-08-21 637/week @ 2024-08-28 993/week @ 2024-09-04 900/week @ 2024-09-11 1125/week @ 2024-09-18 1054/week @ 2024-09-25 765/week @ 2024-10-02 806/week @ 2024-10-09 924/week @ 2024-10-16 1038/week @ 2024-10-23 1389/week @ 2024-10-30 1567/week @ 2024-11-06

5,079 downloads per month
Used in 17 crates (6 directly)

MIT license

18KB
320 lines

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

port-selector

Build Status Crates Downloads Last Commit

Docs GitHub Actions CI LICENSE

Overview

port-selector is a rust library that provides port availability checking, port filtering based on conditions and occupy specified ports.

Installation

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

  2. Add the dependent

[dependencies]
port-selector = "0.1.5"
  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 · take_up_tcp_port · take_up_udp_port · take_up_port · random_take_up_tcp_port · random_take_up_udp_port · random_take_up_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.
    pub check_tcp: bool,
    // Check whether the port is available on UDP.
    // The default value is true.
    pub check_udp: bool,
    // Set the range of generated ports, default (0, 65525)
    pub 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
    pub 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 += 1 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>

take_up_tcp_port

Occupy port on tcp

fn take_up_tcp_port(port: Port) -> bool

take_up_udp_port

Occupy port on udp

fn take_up_udp_port(port: Port) -> bool

take_up_port

Occupy port on tcp && udp

fn take_up_port(port: Port) -> bool

random_take_up_tcp_port

Randomly occupied port on tcp by the system

fn random_take_up_tcp_port() -> Port

random_take_up_udp_port

Randomly occupied port on udp by the system

fn random_take_up_udp_port() -> Port

random_take_up_port

Randomly occupy tcp && udp ports by the system

fn random_take_up_port() -> Port

Thanks

portpicker-rs

Dependencies

~315KB