3个版本

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

6 in #capsule

Download history 25/week @ 2024-03-11 30/week @ 2024-03-18 6/week @ 2024-03-25 21/week @ 2024-04-01 13/week @ 2024-04-08 21/week @ 2024-04-15 22/week @ 2024-04-22 10/week @ 2024-04-29 6/week @ 2024-05-06 10/week @ 2024-05-13 15/week @ 2024-05-20 10/week @ 2024-05-27 19/week @ 2024-06-03 9/week @ 2024-06-10 18/week @ 2024-06-17 13/week @ 2024-06-24

每月下载量60次
3 个crate中使用 (通过 capsule)

Apache-2.0

14KB
254

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

Capsule

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

目录

概述

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

  • 一个使用最少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 许可 的许可。


lib.rs:

Capsule 的过程宏。

依赖关系

~2MB
~43K SLoC