#nbd #netlink #linux #network-block-device #neli #api-bindings

nbd-netlink

使用Linux netlink接口为指定的套接字和参数设置NBD设备

4个版本 (2个破坏性更新)

0.3.0 2022年7月3日
0.2.0 2021年1月4日
0.1.1 2020年8月25日
0.1.0 2020年8月11日

#371 in Unix API

Download history 4/week @ 2024-03-11 27/week @ 2024-04-01 27/week @ 2024-06-03 9/week @ 2024-06-10 22/week @ 2024-06-17 7/week @ 2024-06-24

每月65次下载

MIT/Apache

9KB
162 行代码

nbd-netlink 支持使用Linux内核的netlink接口为指定的套接字和参数设置NBD设备。与基于 ioctl 的接口不同,netlink接口可以在不留下线程或进程运行的情况下将套接字传递给内核。

示例

use std::net::{Ipv4Addr, TcpStream};
use nbd_netlink::{NBD, NBDConnect};
let nbd_socket = TcpStream::connect((Ipv4Addr::LOCALHOST, 10809))?;
nbd_socket.set_nodelay(true);
let mut nbd = NBD::new()?;
let index = NBDConnect::new()
    .size_bytes(1048576)
    .read_only(true)
    .connect(&mut nbd, &[nbd_socket])?;

lib.rs:

nbd-netlink 支持使用Linux内核的netlink接口为指定的套接字和参数设置NBD设备。与基于 ioctl 的接口不同,netlink接口可以在不留下线程或进程运行的情况下将套接字传递给内核。

示例

use std::net::{Ipv4Addr, TcpStream};
use nbd_netlink::{NBD, NBDConnect};
let nbd_socket = TcpStream::connect((Ipv4Addr::LOCALHOST, 10809))?;
nbd_socket.set_nodelay(true);
let mut nbd = NBD::new()?;
let index = NBDConnect::new()
    .size_bytes(1048576)
    .read_only(true)
    .connect(&mut nbd, &[nbd_socket])?;

依赖关系

~0.9–1.6MB
~36K SLoC