8 个版本
0.4.1 | 2024年1月9日 |
---|---|
0.4.0 | 2023年1月23日 |
0.3.5 |
|
0.3.3 | 2022年1月3日 |
0.0.1 |
|
#139 in Unix API
每月 283 次下载
245KB
6K SLoC
Rust 的 NetworkManager 绑定
NetworkManager 的 Rust 绑定,使用 D-Bus 消息总线系统
状态
注意:目前我无法抽出时间来维护这个项目。欢迎贡献者!!
该项目仍在开发中。目前实现的各个部分可以在文档中找到。
- NetworkManager D-Bus API >= v1.24.2
使用方法
使用以下命令将 networkmanager 和 dbus 添加到您的 Cargo.toml
[dependencies]
networkmanager = "0.4"
dbus = "0.9"
示例
use networkmanager::devices::{Any, Device, Wired, Wireless};
use networkmanager::{Error, NetworkManager};
use dbus::blocking::Connection;
fn main() -> Result<(), Error> {
let dbus_connection = Connection::new_system()?;
let nm = NetworkManager::new(&dbus_connection);
for dev in nm.get_devices()? {
match dev {
Device::Ethernet(x) => {
println!("Is autoconnected: {:?}", x.autoconnect()?);
println!("Speed: {:?}", x.speed()?);
println!("S390 Subchannels: {:?}", x.s390_subchannels()?);
println!("Carrier: {:?}", x.carrier()?);
}
Device::WiFi(x) => {
println!("Access Point: {:?}", x.access_points()?);
}
_ => {}
}
}
let enp0s2 = nm.get_device_by_ip_iface("enp0s2")?;
match enp0s2 {
Device::Ethernet(x) => {
// NetworkManager >= 1.24
// println!("Hardware Address: {:?}", Any::hw_address(&x)?);
// NetworkManager < 1.24
// println!("Hardware Address: {:?}", Wired::hw_address(&x)?);
println!("Speed: {:?}", x.speed()?);
}
_ => {}
}
Ok(())
}
构建前提条件
-
Debian 及其衍生版本(例如 Ubuntu)
- network-manager
- libdbus-1-dev
- pkg-config
-
Fedora
- NetworkManager
- dbus-devel
- pkg-config
待办事项
- 实现
- 设备
- 任何
- 通用
- 无线
- 有线
- ADSL
- 蓝牙
- 聚合
- 桥接
- 虚拟
- 无限带宽
- IP隧道
- 低功耗蓝牙
- macsec
- macVLAN
- 调制解调器
- OLPCMesh
- OVSBridge
- OVSInterface
- OVSPort
- PPP
- 统计信息
- 团队
- TUN/TAP
- VETH
- VLAN
- VRF
- VXLAN
- Wi-Fi P2P
- WiMax
- Wireguard
- Wpan
- 配置
- IP4
- IP6
- DHCP4
- DHCP6
- 接入点
- 连接活动
- NetworkManager(部分实现)
- 代理管理器
- 检查点
- DNS管理器
- PPP
- 密钥代理
- 设置
- 连接设置
- VPN 连接
- VPN 插件
- Wi-Fi P2P
- WiMax NSP
- 设备
- 通用
- 改进错误处理
- dbus::arg::Variants 转换
许可证
许可权归以下之一
- Apache许可证,版本2.0(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0》)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT》)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,将按照上述方式双重许可,不附加任何额外条款或条件。
依赖项
~6MB
~133K SLoC