3 个版本
| 18.11.6 |
|
|---|---|
| 0.1.5 | 2021 年 3 月 11 日 |
| 0.1.4 | 2020 年 5 月 11 日 |
| 0.1.3 | 2020 年 4 月 4 日 |
在 #capsule 中排名 2
每月下载 62 次
在 3 个 crate 中使用(通过 capsule)
785KB
26K SLoC
Capsule
Capsule 是一个用于网络功能开发的框架。用 Rust 编写,受 NetBricks 启发,并基于英特尔 数据平面开发套件 构建。
目录
概述
Capsule 的目标是提供一个易于使用的框架,用于网络功能开发,这对于开发者来说传统上具有较高的门槛。我们创建了一个工具,可以高效地操作网络数据包,同时保证类型安全、内存安全和线程安全。基于 DPDK 和 Rust,Capsule 提供了
- 一个使用最少 CPU 周期的快速数据包处理器。
- 一个丰富的数据包类型系统,保证内存安全和线程安全。
- 一个强调简单性的声明式编程模型。
- 一个可扩展和可测试的框架,易于开发和维护。
快速入门
开始开发 Capsule 应用程序的最简单方法是使用我们团队提供的 Vagrant 虚拟机 和 Docker 沙盒。沙盒预先配置了所有必要的工具和库,用于 Capsule 开发,包括
DPDK19.11Clang和LLVMRust1.50rr5.3
首先在您的系统上安装 Vagrant 和 VirtualBox,然后安装以下 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
一旦进入已创建的安装了 Docker 的 Debian 虚拟机,运行以下命令以启动沙箱:
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 虚拟机环境的说明,以及不使用 Vagrant 或 Docker 的其他选项。
贡献
感谢您帮助改进项目!我们有一个贡献指南,帮助您参与 Capsule 项目。
行为准则
本项目以及所有参与其中的人均受 Capsule 行为准则 的约束。通过参与,您同意此准则。请将任何违反行为准则的行为报告给 capsule-dev@googlegroups.com。
联系方式
维护者
当前负责合并 PR 的维护者及其角色包括
了解更多关于 Capsule 的信息
许可证
本项目采用Apache-2.0 许可证。
lib.rs:
Capsule 的 FFI 绑定。
依赖项
~0–2MB
~37K SLoC