Expand description
§Example:
use tun_rs::DeviceBuilder;
let dev = DeviceBuilder::new()
.name("utun7")
.ipv4("10.0.0.12", 24, None)
.ipv6("CDCD:910A:2222:5498:8475:1111:3900:2021", 64)
.mtu(1400)
.build_sync()
.unwrap();
let mut buf = [0;65535];
loop {
let len = dev.recv(&mut buf).unwrap();
println!("buf= {:?}",&buf[..len]);
}
§Example IOS/Android/… :
#[cfg(unix)]
{
use tun_rs::SyncDevice;
// use PacketTunnelProvider/VpnService create tun fd
let fd = 7799;
let dev = unsafe{SyncDevice::from_fd(fd)};
let mut buf = [0;65535];
loop {
let len = dev.recv(&mut buf).unwrap();
println!("buf= {:?}",&buf[..len]);
}
}
Modules§
- async_
framed async_io
orasync_tokio
Structs§
- Async
Device async_io
orasync_tokio
- An async Tun/Tap device wrapper around a Tun/Tap device.
- Device
Builder - A builder for configuring a TUN/TAP interface.
- Device
Impl - A TUN device using the TUN/TAP Linux driver.
- GROTable
send_multiple
Using GROTable to assist in writing data- Sync
Device - A transparent wrapper around DeviceImpl, providing synchronous I/O operations.
Enums§
- Layer
- Represents the OSI layer at which the TUN interface operates.
Constants§
- IDEAL_
BATCH_ SIZE - https://github.com/WireGuard/wireguard-go/blob/master/conn/conn.go#L19
- PACKET_
INFORMATION_ LENGTH - VIRTIO_
NET_ HDR_ LEN
Traits§
- Expand
Buffer - ToIpv4
Address - Trait for converting various types into an IPv4 address.
- ToIpv4
Netmask - Trait for converting various types into an IPv4 netmask (prefix length).
- ToIpv6
Address - Trait for converting various types into an IPv6 address.
- ToIpv6
Netmask - Trait for converting various types into an IPv6 netmask (prefix length).