一款用 Rust 编写的全新“轮子”最近备受关注——
因不满大公司垄断,Gosub 项目团队用 Rust 从头开始编写了一个新的浏览器引擎,目前 star 数已超过 3k。
Gosub 项目的诞生是因为不少用户对当前的 Web 浏览器现状感到不满。尽管市面上有许多浏览器可供选择,但其中大多数都是基于相同的引擎。此外,最流行的两个浏览器 —— Chrome 和 Edge 都基于相同的引擎,这意味着 Web 被两家公司控制。这对 Web 来说并非好事,Web 应该是开放的,每个人都可以自由使用。
团队表示,Gosub 最终目标是创造一个高性能、安全开放、开发者友好的全新浏览器引擎,完全采用最新的 Web 标准和技术,为用户提供更多的选择,并且能够与大公司把控的浏览器进行竞争——迫使他们更加开放和自由。
Gosub 目前处于比较初级的阶段,提供了以下组件:
HTML5 tokenizer / parser
CSS3 tokenizer / parser
文档树
用于连接 JavaScript 的 API
配置存储
网络堆栈
渲染引擎
JS bridge
Gosub 现在已经能够解析 HTML 5 和 CSS 3 文件,并进行简单的渲染,基础的网页浏览不在话下。
下图是使用 Gosub 引擎进行“自举”——渲染 Gosub 官网的效果:Gosub 引擎还可以编译为 Wasm,因此它可以在其他支持 WebAssembly 的浏览器里运行,从而将该浏览器 (Gosub) 嵌套到另一个浏览器(Chrome、Firefox 等等)中。该开源项目还在建设当中,如果你有 Web 技术、协议标准、CPU 架构等方面的知识,也可以加入他们。