17611538698
webmaster@21cto.com

OpenAI 用 Rust 重写了 AI 编程工具

人工智能 0 304 2025-06-04 08:58:36
图片
近日,OpenAI 已使用 Rust 重写了其即将推出的 AI 命令行编码工具 Codex CLI,其理由是其性能和安全性有所提高,同时避免了对 Node.js 的依赖,因为 Node.js 可能会“让某些用户感到沮丧或受到阻碍”。

Codex 是一个实验性的编码代理,可以通过 ChatGPT 中的 Web 浏览器运行,也可以使用 Codex CLI 在本地环境中运行。

它拥有基于聊天的用户界面,CLI 可以以交互方式运行(以 codex 命令开头的提示符),也可以以非交互的静默模式运行,该模式可用于持续交付流水线,例如生成变更日志。

值得一提的是,请勿将当前的 Codex 与 2021 年推出的一款产品(也叫 Codex,但已于 2023 年 3 月弃用)相混淆。

Codex CLI在 GitHub 上开源。地址如下:

https://github.com/openai/codex

可通过 WSL(适用于 Linux 的 Windows 子系统)在 MacOS、Linux 或 Windows 上运行。其源代码主要使用 TypeScript 编写,并运行在 Node.js 上,但团队现已使用 Rust 进行了重写

维护者 Fouad Matin 如此表示,至少在 Rust 版本达到“体验和功能对等”之前,仍会针对 TypeScript 实现合并错误修复。

为什么要重写?Matin 表示,尽管当前基于 React 和 TypeScript 的版本“易于开发和集成”,但 Rust 的改进主要有四个关键原因。

  • 第一个是零依赖安装,而当前对 Node.js 22 或更高版本的要求可能会对某些用户造成阻碍。
  • 其次是沙盒的必要性。在 macOS 上,Codex CLI 的命令由 Apple Seatbelt(名为 sandbox-exec 的命令)所包装,该命令在可配置的沙盒环境中运行进程。在 Linux 上,Codex CLI 默认不进行沙盒处理,OpenAI 建议在容器中运行它。不过,OpenAI 已经创建了一种对 Rust 命令进行沙盒处理的方法,在 macOS 上仍然使用 sandbox-exec,在 Linux 上使用 Landlock [https://docs.kernel.org/userspace-api/landlock.html]。
  • 第三是优化性能,无需运行时垃圾收集,并且内存要求非常的低。 
  • 第四是能够使用现有的 Rust MCP(模型上下文协议)实现。Codex CLI 既可以作为 MCP 客户端,也可以作为 MCP 服务器运行。

Rust 被设计为一种系统语言,本质上比在 Node.js 使用的 V8 JavaScript 引擎上运行的代码更高效。然而,Rust 的编程难度更高,因此效率可能低于编写 TypeScript 或 JavaScript。

根据大多数调查,JavaScript 和 Python 是最受欢迎的编程语言,而 Rust 的知名度则低得多。基于 Rust 的 Codex CLI 仍然可以扩展,支持其他语言的代码,目前已经包括 JavaScript 和 Python。

OpenAI 并非唯一一个认为 Rust 的效率值得额外投入的机构。

Vue.js 的创建者尤雨溪 Evan You发布了Rolldown-Vite 的介绍,这是 Vite 本地开发服务器和构建工具的新版本。Vite 目前在底层使用名为 Rollup.js 的打包工具,但将其替换为基于 Rust 的 Rolldown 后,可以“将生产构建时间从 1/3 缩短到 1/16,并将构建过程中的内存使用量减少高达 1/100”,他这样表示。

编辑:行动中的大雄

评论