3个版本
0.1.5 | 2021年3月11日 |
---|---|
0.1.4 | 2020年5月11日 |
0.1.3 | 2020年4月4日 |
6 in #capsule
每月下载量60次
在 3 个crate中使用 (通过 capsule)
14KB
254 行
Capsule
Capsule是一个用于网络功能开发的框架。用Rust编写,受NetBricks的启发,并在Intel的数据平面开发套件上构建。
目录
概述
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
然后克隆我们的沙箱仓库,启动并使用 ssh 登录到 Vagrant VM,
host$ git clone https://github.com/capsule-rs/sandbox.git
host$ cd sandbox
host$ vagrant up
host$ vagrant ssh
一旦进入已创建的安装了 Docker
的 Debian
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 环境的说明,以及不使用 Vagrant
或 Docker
的其他选项。
贡献
感谢您帮助我们改进项目!我们有一个 贡献指南,以帮助您参与 Capsule
项目。
行为准则
本项目及其所有参与者均受 Capsule 行为准则 的约束。通过参与,您同意此准则。请将任何违反行为准则的报告发送至 [email protected]。
联系方式
维护者
当前负责合并 PR 的维护者及其角色是
了解更多关于 Capsule 的信息
许可证
本项目受 Apache-2.0 许可 的许可。
lib.rs
:
Capsule
的过程宏。
依赖关系
~2MB
~43K SLoC