#freebsd #sandbox #capsicum #networking #sockets

capsicum-net

Rust 对 FreeBSD 的 cap_net 库的绑定

1 个不稳定版本

0.1.0 2024年6月5日

#654Unix APIs

MIT/Apache

33KB
513 代码行数(不包括注释)

capsicum-net

Rust 对 FreeBSD 的 cap_net(3) 库的绑定。 cap_net 通过将它们委派给非沙箱进程(Casper 守护进程)来允许访问几个在能力模式下被禁止的网络 API。

Build Status](https://cirrus-ci.com/github/asomers/capsicum-net) Crates.io

文档

使用方法

请参阅 API 文档中的示例。基本思路是在程序首次启动时创建 CasperCapNetAgent 对象。然后,使用如 CapNetAgent::bind 这样的函数代替 std::net::UdpSocket::bind。有三种 API 可用

  • 直接在 CapNetAgent 对象上操作的低级方法。这些方法与 nix 遗留物配合良好。
  • 在标准套接字类型上工作的扩展特性。
  • 与 tokio 类型一起工作的扩展特性。这需要使用 tokio 功能构建遗留物。

平台

此遗留物仅在 FreeBSD 13 及更高版本上工作。至少,直到有人将 cap_net 移植到不同的操作系统。

最低支持的 Rust 版本 (MSRV)

capsicum-net 不保证任何特定的 MSRV。相反,它保证与在 FreeBSD 软件包集合中提供的最旧的 rustc 兼容。

许可协议

capsicum-net 主要在 MIT 许可协议和 Apache 许可协议(版本 2.0)的条款下分发。

请参阅 LICENSE-APACHE 和 LICENSE-MIT 以获取详细信息。

赞助

capsicum-net 由 Axcient,inc. 赞助。

依赖项

~2–13MB
~150K SLoC