JetBrains 发文将常年被认为是竞争对手的 Rust 和 JavaScript/TypeScript 语言进行了一个全面的对比,深入探讨 Rust 和 JavaScript/TypeScript 的当前采用率和应用场景。
文章指出,Rust 和 JavaScript/TypeScript 实际上是两种互补的语言,用于不同的目的,擅长不同的领域。它们具有不同的设计目标,因此每种语言的最佳应用场景也不同。
JavaScript/TypeScript 的优点是具有无与伦比的灵活性、庞大的生态系统和快速迭代能力, 而 Rust 在对性能、内存安全性和系统级可靠性具有极高要求的项目中表现出色。
得益于 WebAssembly 等技术,Rust 代码现在可以与 JS/TS 环境无缝集成,在灵活的前端下有效地充当高性能引擎。这种将 Rust 与 JavaScript/TypeScript 相结合的混合项目日益增多,反映出更广泛的语言协作趋势。一个很好的例子是使用 WebAssembly 的 Rust 和 TypeScript 项目,其中 Rust 负责处理性能关键型逻辑,而 TS 则负责管理面向 Web 的部分。
Rust 和 JavaScript:它们在 2025 年的地位
2025 开发者生态系统调查显示,10% 的开发者打算明年采用 Rust ,而 TypeScript 在过去五年的实际采用率要高于任何其他语言。这项调查的语言前景指数显示,TypeScript、Rust 和 Go 拥有最高的增长潜力,而 JavaScript、PHP 和 SQL 的增长似乎已趋于稳定。
![]()
Rust
2024 年,Rust 取得了一个重要的里程碑,开发者人数估计达到 227 万,其中 70.9 万开发者将其视为主要编程语言。今年,Rust 在非常重视性能和安全性的领域持续获得关注。Rust 的商业使用大幅增长,2021 年至 2024 年间,开发者在生产环境中使用 Rust 的比例提高了 68.75%。
Rust 的生态系统在各行各业蓬勃发展,能够支持从操作系统和浏览器到云基础架构、WebAssembly 应用、嵌入式设备和区块链平台等一切应用场景。Microsoft、Google、Amazon 和 Meta 等领军企业都依赖 Rust,因为无论是在 Linux 内核还是 AWS Firecracker microVM 中,Rust 都拥有无与伦比的速度、安全性和可扩缩性。
Rust 还有一个日益增长的应用场景:Web 开发,这表明它与 JavaScript/TypeScript 自然融合。2024 JetBrains 生态系统数据显示,Rust 用于 Web 开发是第三受欢迎的应用场景,展现了 Rust 与 Web 开发生态系统的集成程度。
JavaScript / TypeScript
JavaScript 仍然是开发者的普遍选择,在专业开发者中的使用比例最高。(2025 年为 68.8%)。TypeScript 的工具和大型生态系统的采用使得 JS 团队能够向前迈出坚实的一步。以下数据可以说明 TS 的日益兴起:2025 年 8 月,TypeScript 的 GitHub 贡献者人数增长超过了 JavaScript 和 Python。
![]()
这种日益普及背后的原因很明显:JavaScript 和 TypeScript 生态系统提供了出色的灵活性,使其成为现代软件开发中最强大的环境之一。
开发者可以使用这两种语言,借助 Node.js 等框架,构建动态前端界面和强大的后端服务。这为使用一种语言开发全栈应用程序创造了条件。JS/TS 的速度和适应性使其成为快速原型设计的理想之选,而庞大的插件和库生态系统则提供了现成的解决方案,可以应对从 UI 框架到复杂数据处理的几乎任何挑战。
常见应用场景和项目
Rust 中越来越多的 Web 框架现在反映了 JavaScript 生态系统中许多熟悉的模式,使团队更容易将这两个世界融合在一起。Actix Web、Axum、Rocket、Warp、Loco、Cot 和 Leptos 等全栈工具提供了路由、中间件模式、请求处理和组件模型,它们在概念上与流行的 JS 框架相对应。
例如,Actix Web 和 Axum 与 Express 或 Fastify 在 Node.js 生态系统中扮演的角色保持一致,而 Leptos 在构建反应式 UI 逻辑方面与 React 或 Svelte 更为接近,只是为了提高性能,它被编译成了 WebAssembly。
Rust Web 框架如何映射到熟悉的 JavaScript 模式
Rust 的现代 Web 框架对于来自 JavaScript 生态系统的开发者来说并不陌生。虽然它们的类型和执行模型有所不同,但路由、中间件、处理程序和提取器等核心概念都遵循 JS 开发者日常使用的模式。
- Actix Web 以其速度和成熟的异步运行时而闻名。它使用一个 actor 模型,让你无需复杂的协调逻辑即可构建高度并发的服务。对于拥有高吞吐量 Node 服务器或 Fastify 等框架使用经验的团队来说,Actix Web 能够提供类似的效率,但具有 Rust 的可预测性,并且在内存安全性和性能方面提供了更强大的保证。
- Axum 采用模块化、中间件驱动的方式。它在 Tower 生态系统基础上构建,促进了路由、请求处理和服务组合之间的明确分离。喜欢 Deno 生态系统中 Koa 或现代框架的灵活性的开发者往往会发现 Axum 很直观,因为它采用可组合的基元和简洁、类型优先的设计。如果要查看这种方式的实际运作,这个简短的 Axum 教程将带您了解一个真实的示例。
- Rocket 专注于人体工程学。它的声明式路由和宏驱动的语法减少了样板代码,使处理程序定义更简洁明了。这与那些既喜欢 NestJS 等装饰器驱动框架的表现力,又想要编译型语言的可靠性的开发者产生了共鸣。随着 Rocket 1.0 的稳定,该框架已成为生产 API 和原型的可靠选择。 这些框架共同展现了 Rust 的服务器端生态系统如何发展成为一个 JS/TS 开发者可以顺利过渡的空间,它们不仅采用熟悉的模式,还带来了更强的安全保证和更可预测的性能
为什么这些框架在混合架构中很重要
随着越来越多的团队将 Rust 与 JavaScript 或 TypeScript 混合使用,Actix Web、Axum 和 Rocket 等框架已成为后端或核心逻辑层必不可少的组成要素。这解决了 Node 服务经常遇到的限制问题,尤其是在较高的负载、CPU 密集型操作或严格的延迟要求下。
Rust 的并发模型和可预测吞吐量使这些框架非常适合对性能敏感的后端逻辑,而 JS/TS 则继续推动 UI 和应用层。
它们还可与现代 API 工具清晰集成,这使得公开 TypeScript 客户端可靠使用的 REST 或 gRPC 接口变得非常容易。对于使用 WebAssembly 的团队来说,这些框架是对工作流的补充,在这些工作流中,浏览器模块和后端服务会共享基于 Rust 的组件。
结果是获得一种混合架构,其中 JavaScript 驱动用户体验和快速迭代,而 Rust 则为需要精确性和速度的关键路径提供支持。
Rust 的 WebAssembly 功能和 JavaScript 集成
WebAssembly 充当一座实用的桥梁,使 Rust 和 JavaScript 可以在浏览器内进行协作。可以直接将 Rust 编译成 Wasm,这样,当一个任务需要的速度或可预测性超出 JS 能够提供的范围时,JavaScript 就可以调用高性能 Rust 函数。
随着越来越多的团队将 Rust 编译的 Wasm 用于图像处理、数据可视化管道、物理模拟、密码学和其他计算密集型例程,这种模型变得越来越普遍。这些例程如果单纯用 JavaScript 实现,将会减慢或阻止 JS 应用的运行。
工作流简单明了:JavaScript 或 TypeScript 继续处理应用程序的绝大部分,如 UI 渲染、事件处理、状态管理和路由,而 Rust 则专注于性能关键型模块。
你将获得一个 JS/TS 应用程序,它具有专门的 Rust 组件,可以悄无声息地加速推进最难的部分。
现在,许多团队都采用这种模式,使用 Rust 驱动的 WebAssembly 模块来处理复杂的计算,同时将代码库的其余部分保留在熟悉的 JavaScript/TypeScript 中。这是一种互补的方式,它会增强现代 Web 工作流,而不会取代已确立的前端做法(省掉很多麻烦!)。
将 Rust Web 框架引入 JS/TS 工作流的实际模式
采用 Rust 以及 JavaScript 和 TypeScript 的团队通常会从增量式更改开始,使用 Rust 框架作为进入现有系统的清晰入口点。
一个常见的切入点是使用 Actix Web 或 Axum 服务替代单个 Node 微服务,特别是对于数据处理、身份验证或分析等 Node 需要承受很大负担的任务。由 OpenAPI 生成的 TypeScript 客户端帮助确保顺利集成。
另一种模式是使用 Rocket 或 Axum 为 React 或 Next.js 应用程序构建后端服务。这些 Rust 服务在高并发条件下可以提供可预测的延迟时间,而 JS/TS 前端则可以保持灵活性和快速迭代周期。
对于使用 WebAssembly 的团队来说,Rust 的 Web 框架与浏览器模块和服务器组件共享基于 Rust 的逻辑的工作流自然融合。
这些模式共同展现了 Rust 框架如何通过处理性能关键型组件来扩展 JS/TS 工作流,而不会干扰更广泛的开发流程。
Rust 与 JavaScript:生态系统、工具和开发者体验
生态系统
对于习惯使用 JavaScript 的开发者来说,Rust 生态系统既熟悉又与众不同。JavaScript 凭借广泛的库生态系统、快速发展的框架和软件包管理器得以蓬勃发展。Rust 提供更精简的环境,拥有以 Cargo 为中心的标准工具链,Cargo 充当统一的构建系统、依赖项管理器、测试运行程序和项目搭建工具。
工具
在工具方面,JS 开发者往往依赖 WebStorm 或 VS Code,而 Rust 开发者越来越多地使用 RustRover、带有 Rust 插件的 IntelliJ 或带有 Rust 支持的 CLion,以获得整合度更高的开发体验。
2024 Rust 社区现状调查显示,VS Code 仍然是 Rust 最常用的编辑器,其次是 Neovim 和基于 IntelliJ 的 IDE,这表明轻量级编辑器与全功能 IDE 之间出现了分化,具体使用情况取决于工作流偏好和项目复杂性。
Rust 和 JS/TS 如何协同工作
现代团队越来越多地在同一个工作流中结合使用 Rust 和 JavaScript/TypeScript,尤其是当性能是关键考量因素时。一种常见模式是将 Rust 编译为 WebAssembly,并直接从 JS/TS 中调用。
这非常适合数据解析、图像处理、模拟代码或加密例程等任务,在此类任务中,Rust WebAssembly 的性能可以展现出明显的优势。这种方式是对 JS/TS 的补充,后者会继续管理 UI、路由和应用程序逻辑。
多达 85% 的开发者已使用 AI 助手。对新工具的开放态度为尝试使用 Rust 和 JavaScript 混合架构创造了条件。
JS/TS 负责处理前端和日常开发任务,而 Rust 模块(包括通过 WebAssembly 实现的模块)则负责处理性能密集型任务或关键的后端服务。这说明两者相辅相成,而不是一种语言优于另一种语言。
示例:从 TypeScript 调用 Rust 编译的 Wasm 模块
import init, { compute_heavy_task } from "./pkg/my_rust_module.js";
async function run() {
await init("./pkg/my_rust_module_bg.wasm");
const result = compute_heavy_task(500000);
console.log("Result:", result);
}
run();
这种方式让团队能够兼顾两者的优点:JS/TS 负责推动更好的产品体验,而 Rust 则负责处理需要速度、安全性或系统级控制的部分。
Rust 和 JS/TS 的商业应用:3 个示例
Figma
Figma 是基于 Web 的设计平台,它将 Rust 和 WebAssembly 与 TypeScript 和 React 驱动的界面相结合。它的核心图形渲染和繁重的计算任务从 Rust 编译为 Wasm,为浏览器提供了接近原生的性能,能够处理向量数学、画布操作和实时协作更新等任务。
同时,该应用程序的主界面、交互逻辑和整体用户体验均使用 TypeScript 和 React 构建,从而实现迅速迭代和丰富、响应迅速的 UI 层。这种将 Rust/Wasm 用于性能关键型任务,将 JS/TS 用于提升产品开发速度的混合方案,正是 Figma 能够在浏览器中既强大又流畅的核心原因。
Biome
Biome 是是一个适用于 Web 项目的高性能工具链。它提供的开发者工具可以帮助确保这些项目的健康和一致性。它通过编辑器中的 LSP 集成和 CLI 来设置代码格式和执行 lint 分析。
Biome 采用语言服务器协议,通过 CLI 和编辑器集成进行使用。虽然 Biome 同时支持 JavaScript 和 TypeScript 项目,但它本身在内部并不依赖 JavaScript 或 TypeScript。相反,它取代了传统的基于 JavaScript 的工具,如 Prettier 和 ESLint,改为 Rust 实现的专注于速度、可靠性和开发者体验的替代方案。
Cloudfare
Cloudflare 的边缘计算平台严重依赖 Rust 来支持其安全、高性能无服务器运行时,包括建立 Cloudflare Workers。Rust 负责处理低级执行引擎、网络操作、隔离层和整体运行时可靠性。
开发者使用 JavaScript 或 TypeScript 在这个基于 Rust 的基础架构上编写实际边缘逻辑,Cloudflare 会编译这些逻辑并在全球网络中运行。这种搭配使 Cloudflare 能够提供建立在 Rust 之上的快速安全的边缘平台,同时为开发者提供熟悉和灵活的 JavaScript/TypeScript 生态系统。
结论
Rust 和 JavaScript/TypeScript 最好的工作方式不是作为彼此的替代方案,而是作为同一个栈的互补层。这样即可将 Rust 的速度、安全性和准确性与 JS/TS 的适应性和快速开发能力相结合,为团队提供一种全面的方法,适应从 Web 应用程序到后端系统的各种场景。无论通过 WebAssembly、共享服务还是模块化后端实现,采用混合工作流,都能为架构的每个部分选择合适的工具。