< 返回版块

Mike Tang 发表于 2025-02-06 15:42

使用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

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页