NGINX 项目发布了一个用于使用 Rust 语言开发模块的工具包

NGINX 项目的开发人员推出了 ngx-rust 工具包,它允许您使用 Rust 编程语言为 http 服务器和 NGINX 多协议代理创建模块。 ngx-rust 代码在 Apache 2.0 许可证下分发,目前处于测试阶段。

最初,该工具包是作为一个项目开发的,旨在加速在 NGINX 之上运行的 Kubernetes 平台开发与 Istio 兼容的服务网格。 该产品从未超越原型并停滞了好几年,但在原型过程中发布的示例绑定被社区在第三方项目中使用,以扩展 NGINX 在 Rust 中的功能。

一段时间后,F5 公司需要为 NGINX 编写一个专门的模块来保护其服务,其中它希望使用 Rust 语言来降低使用内存时出错的风险。 为了解决这个问题,引入了 ngx-rust 的作者,他的任务是开发新的和改进的工具,用于用 Rust 语言为 NGINX 创建模块。

该工具包包括两个 crate 包:

  • nginx-sys - 基于 NGINX 源代码的绑定生成器。 该实用程序加载NGINX代码及其所有关联的依赖项,然后使用bindgen在原始函数(FFI,外部函数接口)上创建绑定。
  • ngx - 用于从 Rust 代码访问 C 函数的层、一个 API 和一个用于重新导出使用 nginx-sys 创建的绑定的系统。

来源: opennet.ru

添加评论