3 个版本

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

#capsule 中排名 2

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

每月下载 62
3 个 crate 中使用(通过 capsule

Apache-2.0 协议

785KB
26K SLoC

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

Capsule

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

目录

概述

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

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

快速入门

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

首先在您的系统上安装 VagrantVirtualBox,然后安装以下 Vagrant 插件,

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

然后克隆我们的沙盒仓库,启动并连接到 Vagrant VM,

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

一旦进入已创建的安装了 DockerDebian 虚拟机,运行以下命令以启动沙箱:

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 虚拟机环境的说明,以及不使用 VagrantDocker 的其他选项。

贡献

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

行为准则

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

联系方式

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

维护者

当前负责合并 PR 的维护者及其角色包括

了解更多关于 Capsule 的信息

许可证

本项目采用Apache-2.0 许可证


lib.rs:

Capsule 的 FFI 绑定。

依赖项

~0–2MB
~37K SLoC