Skip to main content

Config

Struct Config 

Source
pub struct Config { /* private fields */ }
Expand description

Socket configuration for BingerUdp.

Create a Config with Config::new() or Config::default(), then customize it using the builder-style with_* methods.

§Default values

FieldDefault
batch_size32
send_buf_size (kernel SO_SNDBUF)Not set (OS default)
recv_os_buf_size (kernel SO_RCVBUF)Not set (OS default)
adaptive_batchingfalse
metrics_enabledfalse

§Example

use binger_udp::Config;

let config = Config::new()
    .with_batch_size(64)
    .with_adaptive_batching(true);

Implementations§

Source§

impl Config

Source

pub fn new() -> Self

Creates a new Config with default values.

Equivalent to Config::default().

Source

pub fn with_batch_size(self, n: usize) -> Self

Sets the target batch size for BingerUdp::send_batch and BingerUdp::recv_batch operations.

The actual batch size used may be adjusted if adaptive batching is enabled via Config::with_adaptive_batching.

Default: 32.

Source

pub fn with_send_buf_size(self, n: usize) -> Self

Sets the kernel send buffer size (SO_SNDBUF) for the socket.

This is an OS-level socket option that controls how much data the kernel buffers for sending. Larger values can improve throughput at the cost of memory.

Default: None (OS default is used).

Source

pub fn with_recv_os_buf_size(self, n: usize) -> Self

Sets the kernel receive buffer size (SO_RCVBUF) for the socket.

This is an OS-level socket option. The kernel may double the requested value. Useful for high-throughput receivers that want to avoid packet drops in the kernel.

Default: None (OS default is used).

Source

pub fn with_adaptive_batching(self, enabled: bool) -> Self

Enables or disables adaptive batching.

When enabled, the effective batch size is dynamically adjusted based on the rate of WouldBlock events. The batch size is reduced when the WouldBlock rate exceeds 30%, and increased when it drops below 10%. Adjustments occur at most every 100 ms.

Default: false.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.