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
开发,包括
DPDK
19.11Clang
和LLVM
Rust1.50
rr
5.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 行为准则 的约束。通过参与,您同意此准则。请将任何违反行为准则的行为报告给 [email protected]。
联系方式
维护者
当前负责合并 PR 的维护者及其角色包括
了解更多关于 Capsule 的信息
许可证
本项目采用Apache-2.0 许可证。
lib.rs
:
Capsule 的 FFI 绑定。
依赖项
~0–2MB
~37K SLoC