使用Rust构建Web电子表格
在filtra.io发布的一篇采访中,Quadratic的CEO David Kircos讨论了他们使用Rust语言来开发一个基于Web的高性能、可编程的电子表格应用程序——Quadratic。David解释说,创建Quadratic并不像人们想象的那么复杂,因为他们使用了现成的代码编辑器Monaco(即支持Visual Studio Code的编辑器),这允许他们专注于构建一个面向数据分析的集成开发环境(IDE),而非从头开始开发一个新的编辑器。
在战略层面上,David被问及如何说服现有使用Microsoft Office或Google Workspace的用户购买另一个电子表格软件。他表示,Quadratic的独特之处在于它能够处理大数据集,并提供一种交互方式,允许用户从远处查看庞大的数据集,然后迅速缩小到细节部分。
从技术角度看,David提到了他们使用了Rust编译到WebAssembly(WASM)的优势,指出Rust因为其安全性和性能在WASM中占主导地位,尽管C++也被广泛使用,尤其是像Figma这样已经有大量C++图形应用程序的公司。
关于Quadratic的具体技术实现,David提到使用Axum和Tokio来构建Rust的服务端,这在过去几年中已经变得非常稳定。此外,Quadratic在浏览器中运行Python,这是通过Mozilla维护的CPython到WebAssembly的编译实现的,这种方法对于处理电子表格大小的工作负载速度更快。
Quadratic团队成员大多是全能型人才,能够编写TypeScript和Rust代码,并具备创造出色用户界面、高效率算法和健壮服务的能力。
https://filtra.io/rust/interviews/quadratic-aug-24
为Rust添加垃圾回收
在Octave Larose的博客文章中,他讨论了将MMTk(Memory Management Toolkit)垃圾收集框架集成到他们基于Rust的解释器中的经验。这篇文章主要聚焦在研究项目而非生产系统上,强调了性能提升的重要性。使用MMTk后,他们的AST和字节码(BC)解释器的性能提高显著,AST解释器的性能提高了100%,而BC解释器提高了70%。具体到垃圾收集的改进,采用MMTk后,速度提升了一倍。
MMTk是一个语言无关的框架,可以简化管理GC堆、分配、扫描和收集的过程。MMTk提供了几种现成的垃圾收集计划(如标记-清除、半空间等),允许开发者在虚拟机中使用这些计划或者创建自己的计划。此外,MMTk还支持与其他大型虚拟机如OpenJDK、V8的集成。
然而,在集成MMTk时,他们不得不牺牲Rust的一些安全保障,转而使用原始指针,这意味着失去了Rust提供的内存安全性。Larose还提到了其他使用了更智能指针类型的项目,如Saoirse的shifgrethor和Core Dumped的Emacs Lisp VM作为对比。
文章不仅仅展示了技术实现的细节,还提出了在优化解释器性能时面临的各种挑战和解决方案,提供了对于那些对垃圾收集或Rust技术了解有限的人来说也可理解的内容。
https://octavelarose.github.io/2025/01/30/mmtk.html
VEKOS - 一个用Rust写的OS
VEKOS 是一个用 Rust 编写的实验性操作系统,核心关注验证与安全性。此为首个 Alpha 版本 (v0.0.1),展示了系统的基本架构和关键特性。
https://github.com/JGiraldo29/vekos
--
From 日报小组 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论