#xdp #linux #sockets #queue #rings #buffer #interaction

no-std xdpilone

与 Linux XDP 套接字和环的交互。无需 libbpf/libxpd-sys。轻量级,高性能。

5 个稳定版本

1.0.5 2024年8月19日
1.0.4 2024年6月6日
1.0.3 2024年2月3日
1.0.1 2023年1月17日

#117 in Unix API

Download history 217/week @ 2024-05-04 171/week @ 2024-05-11 249/week @ 2024-05-18 360/week @ 2024-05-25 617/week @ 2024-06-01 528/week @ 2024-06-08 403/week @ 2024-06-15 395/week @ 2024-06-22 493/week @ 2024-06-29 520/week @ 2024-07-06 547/week @ 2024-07-13 694/week @ 2024-07-20 854/week @ 2024-07-27 678/week @ 2024-08-03 823/week @ 2024-08-10 1095/week @ 2024-08-17

3,587 每月下载量

EUPL-1.2

71KB
1K SLoC

Rust XDP 访问库。

动机

对于 Linux AF_XDP,所有现有的库都基于或围绕 C 访问库。目标是开发一个以 Rust 为主的库,可以利用其附加的线程安全优势来处理套接字类型,以及用于与数据包缓冲区交互的高级抽象(如闭包、Arc)。

决策的主要指标是性能和延迟。

概述

目标

  • 数据路径中的延迟不高于 C 实现的延迟。
  • 在相同的 Umem 上启用和简化 正确 的多线程。

非目标

  • 处理 BPF / XSK_MAP。这是 必需 的,以便在创建的任何 RX 套接字上接收数据包,但是它可以在任何时间点设置,无需与实际队列交互。因此,我们将其大型依赖树分开。 (如果您想的话,可以选择纯 Rust 的 libbpf 替代方案)。
  • 处理任何缓冲区分配方面的问题。

名称起源

药物伊沙贝隆是一种抗癌药物。

依赖项

~190KB