10 个版本

使用旧的 Rust 2015

0.1.5 2018 年 8 月 12 日
0.1.4 2018 年 8 月 8 日
0.1.0 2018 年 7 月 31 日
0.0.6 2018 年 7 月 18 日
0.0.1 2017 年 6 月 1 日

#3#mempool

Download history 30/week @ 2023-12-13 36/week @ 2023-12-20 12/week @ 2023-12-27 10/week @ 2024-01-03 28/week @ 2024-01-10 23/week @ 2024-01-17 7/week @ 2024-01-24 13/week @ 2024-01-31 25/week @ 2024-02-07 57/week @ 2024-02-14 68/week @ 2024-02-21 49/week @ 2024-02-28 44/week @ 2024-03-06 38/week @ 2024-03-13 64/week @ 2024-03-20 85/week @ 2024-03-27

每月 240 次下载
用于 18 个 crate (17 个直接)

MIT 许可证

23MB
602K SLoC

C 574K SLoC // 0.1% comments Rust 25K SLoC // 0.1% comments Shell 2.5K SLoC // 0.2% comments Python 1K SLoC // 0.2% comments Forge Config 415 SLoC // 0.1% comments RPM Specfile 79 SLoC // 0.0% comments

dpdk-sys

dpdk-sys 是一个 Rust crate,它为 DPDK 提供了 FFI 绑定。

版本控制

当前的绑定是为 DPDK 18.05 构建的。要重新构建绑定,请运行 tools/recreate-bindings。即使可以生成绑定,它们也被检入。将它们作为 Cargo build.rs 的一部分构建已被证明过于脆弱,主要是因为 DPDK 的复杂性以及需要对其进行修补以与 musl libc 一起工作以及在 Mac OS X 上进行编译的需要。

注意

函数 rte_vlog 没有导出,因为它使用了 va_list;此宏映射到不同平台的不同代码。当在 Linux 上使用 musl 时,它可以支持如下:-

pub type va_list = __builtin_va_list;

pub type __builtin_va_list = [__va_list_tag; 1usize];

#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct __va_list_tag
{
	pub gp_offset: c_uint,
	pub fp_offset: c_uint,
	pub overflow_arg_area: *mut c_void,
	pub reg_save_area: *mut c_void,
}

impl Default for __va_list_tag
{
    fn default() -> Self
	{
		unsafe { zeroed() }
	}
}

希望有一天,像这样的代码最终会出现在 libc crate 中,但这不太可能,因为无论如何使用 va_list 都非常困难。

https://stackoverflow.com/questions/38156867/how-to-direct-packets-belonging-to-a-tcp-connection-to-a-specific-lcore-in-dpdk/39708686 https://galsagie.github.io/2015/02/26/dpdk-tips-1/

许可

本项目的许可证为 MIT。

依赖关系

~3MB
~85K SLoC