当前位置: 首页 > news >正文

不到 2 个月,OpenAI 火速用 Rust 重写 AI 编程工具。尤雨溪也觉得 Rust 香!

一、OpenAI 用 Rust 重写 Codex CLI

OpenAI 已用 Rust 语言重写了其  AI 命令行编程工具 Codex CLI,理由是此举能提升性能和安全性,同时避免对 Node.js 的依赖。他们认为 Node.js “可能让部分用户感到沮丧或成为使用障碍”。

Codex 是一款实验性编程代理工具,可在 ChatGPT 的网页浏览器环境中运行,也能通过 Codex CLI 在本地运行。它具备基于聊天的用户界面,CLI 既可交互式运行,也可在非交互式的静默模式下运行。

2025 年 4 月 17 日,Codex CLI 正式在 GitHub 上开源,可通过 WSL(Windows 子系统)在 macOS、Linux 或 Windows 系统上运行。

Codex CLI 其源代码主要为 TypeScript,需基于 Node.js 运行,但团队现已用 Rust 完成重写。

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

二、为何选择用 Rust 重写?

前几天 Matin 在 GitHub 项目中发了一则公告。

他表示,尽管当前基于 React 和 TypeScript 的版本“易于快速启动和迭代”,但 Rust 带来的改进主要有 4 个关键原因:

其一,零依赖安装。当前工具要求 Node.js 22 及以上版本,这可能成为部分用户的使用门槛。

其二,沙盒化需求。在 macOS 系统上,Codex CLI 的命令由 Apple Seatbelt(通过 sandbox-exec 命令在可配置的沙盒环境中运行进程)封装;在 Linux 系统上,Codex CLI 默认不启用沙盒,OpenAI 建议在容器中运行。目前 OpenAI 已实现 Rust 命令的沙盒化方案:macOS 仍使用 sandbox-exec,Linux 则采用 Landlock(内核空间 API 沙盒机制)。

其三,性能优化。Rust 无运行时垃圾回收机制,内存需求更低。

其四,可复用现有 Rust 版 MCP(模型上下文协议)实现。Codex CLI 将同时具备 MCP 客户端和服务器功能。

截至 6 月 6 日发文时,Rust 在 Codex 项目中的占比 46.7%,排第一。(TS 44.7%,暂居第二)

不过,基于 Rust 的 Codex CLI 仍可通过 JS 和 Python 等其他语言的代码扩展,具体细节尚未公布。

三、尤雨溪也说 Rust 香

认为 Rust 的效率高的并非只有 OpenAI。

5 月 30 日,Vue 的创作者尤雨溪曾发文介绍推出 Rolldown-Vite。这是 Vite 本地开发服务器和构建工具的新版本。

Vite 目前底层使用名为 Rollup.js 的打包工具,而采用基于 Rust 的 Rolldown 替代后,尤雨溪表示 “生产构建时间缩短 3 到 16 倍,构建过程中的内存使用量最多减少 100 倍”。

- EOF -

推荐阅读  点击标题可跳转

1、Redis 之父亲证:人类程序员仍力压 LLM!

2、Java 之父怒斥:AI 是场骗局,无法取代程序员

3、好家伙!AI 一次调用新增 3000+行代码,代码美到窒息…

http://www.xdnf.cn/news/899767.html

相关文章:

  • 三十四、面向对象底层逻辑-SpringMVC九大组件之FlashMapManager接口设计哲学
  • C#学习第28天:内存缓存和对象池化
  • vscode使用系列之快速生成html模板
  • CANFD 数据记录仪在汽车售后解决偶发问题故障的应用
  • 浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
  • Python使用clickhouse-local和MySQL表函数实现从MySQL到ClickHouse数据同步
  • 全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
  • Spring Cloud 2025.0.0 Gateway迁移全过程详解
  • Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战
  • 开源 vGPU 方案:HAMi,实现细粒度 GPU 切分
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统
  • 学习笔记(25):线性代数,矩阵-矩阵乘法原理
  • NoSQL子Redis哨兵
  • Android Test3 获取的ANDROID_ID值不同
  • logstash拉取redisStream的流数据,并存储ES
  • uni-app 项目支持 vue 3.0 详解及版本升级方案?
  • LangChain【8】之工具包深度解析:从基础使用到高级实践
  • Vue3 + UniApp 蓝牙连接与数据发送(稳定版)
  • FFmpeg 低延迟同屏方案
  • LeetCode 热题 100 74. 搜索二维矩阵
  • 计算机视觉与深度学习 | 基于MATLAB的图像特征提取与匹配算法总结
  • LinkedBlockingQueue、ConcurrentLinkedQueue和ArrayBlockingQueue深度解析
  • 在 Kali 上打造渗透测试专用的 VSCode 环境
  • MDP的 Commands模块
  • Git 切换到旧提交,同时保证当前修改不丢失
  • 如何写高效的Prompt?
  • pikachu靶场通关笔记18 SQL注入01-数字型注入(POST)
  • JS-- for...in和for...of
  • 在WPF项目中集成Python:Python.NET深度实战指南
  • 如何更改默认 Crontab 编辑器 ?