#dpdk #packet-parsing #packet-processing #nfv #network-functions

capsule

网络功能开发的框架。用 Rust 编写,受 NetBricks 启发,基于英特尔的数据平面开发套件。

3 个版本

0.1.5 2021 年 3 月 11 日
0.1.4 2020 年 5 月 11 日
0.1.3 2020 年 4 月 4 日

#258FFI

Download history 23/week @ 2024-03-11 25/week @ 2024-03-18 23/week @ 2024-04-01 11/week @ 2024-04-08 14/week @ 2024-04-15 18/week @ 2024-04-22 7/week @ 2024-04-29 7/week @ 2024-05-13 11/week @ 2024-05-20 10/week @ 2024-05-27 18/week @ 2024-06-03 8/week @ 2024-06-10 14/week @ 2024-06-17 11/week @ 2024-06-24

每月 52 次下载
用于 2 crates

Apache-2.0

1.5MB
39K SLoC

Crates.io Documentation Apache-2.0 licensed CI-Github Actions Codecov Code of Conduct Discord

Capsule

网络功能开发的框架。用 Rust 编写,受 NetBricks 启发,基于英特尔 数据平面开发套件

目录

概述

Capsule 的目标是提供一个易于使用的框架,用于网络功能开发,这对于开发者来说传统上具有很高的入门门槛。我们创建了一个工具,可以高效地操作网络数据包,同时保证类型安全、内存安全和线程安全。在 DPDKRust 的基础上,Capsule 提供了以下功能:

  • 一个使用最少 CPU 周期的快速数据包处理器。
  • 一个丰富的数据包类型系统,保证内存安全和线程安全。
  • 一个强调简单性的声明式编程模型。
  • 一个可扩展和可测试的框架,易于开发和维护。

快速入门

开始开发 Capsule 应用的最简单方法是使用我们团队提供的 Vagrant 虚拟机Docker 沙盒。沙盒预先配置了所有必要的工具和库,用于 Capsule 开发,包括:

首先,在您的系统上安装 VagrantVirtualBox。同时安装以下 Vagrant 插件:

host$ vagrant plugin install vagrant-reload vagrant-disksize vagrant-vbguest

然后克隆我们的沙盒仓库,启动并使用 ssh 登录到 Vagrant VM。

host$ git clone https://github.com/capsule-rs/sandbox.git
host$ cd sandbox
host$ vagrant up
host$ vagrant ssh

一旦进入已创建的安装了 DockerDebian VM,运行沙盒,使用以下命令:

vagrant$ docker run -it --rm \
    --privileged \
    --network=host \
    --name sandbox \
    --cap-add=SYS_PTRACE \
    --security-opt seccomp=unconfined \
    -v /lib/modules:/lib/modules \
    -v /dev/hugepages:/dev/hugepages \
    getcapsule/sandbox:19.11.6-1.50 /bin/bash

请记住,也要将您的项目工作目录挂载为沙盒的卷。然后您可以在容器内部使用 Cargo 命令,就像平常一样。

Capsule 添加为您的 Cargo.toml 的依赖项,并开始编写您的应用程序。

[dependencies]
capsule = "0.1"

如果您想在 Vagrant 中不使用 Docker 开发 Capsule,请查看我们的 沙盒仓库,了解如何运行我们的 Vagrant VM 环境,以及其他不使用 VagrantDocker 的选项。

贡献

感谢您帮助改进项目!我们有一个 贡献指南,可以帮助您参与 Capsule 项目。

行为准则

本项目及其所有参与人员均受 Capsule 行为准则 的约束。通过参与,您同意此准则。如有违反行为准则的行为,请向 [email protected] 报告。

联系

您可以通过 Discord电子邮件 联系我们。

维护者

当前维护人员及其合并 PR 的角色如下:

了解更多关于 Capsule 的信息

许可证

本项目采用 Apache-2.0 许可

依赖项

~12–26MB
~355K SLoC