浏览器引擎-Servo


Servo 是一个 Web 浏览器引擎的原型,使用 Rust 语言开发,当前基于 OS X 和 Linux 开发。最初由 Mozilla 组织开发,旨在提供高效、安全的网页渲染能力,并且采用并行渲染技术,以提高网页加载速度和性能。采用MPL协议使用授权。

Servo aims to provide an independent, modular, embeddable web rendering engine, allowing developers to deliver content and applications using web standards.
Servo 浏览器引擎的目标是为开发者提供最大的灵活性。为了实现这个目的,它必须提供稳定的 API 和 ABI。它使用 Rust 编写,这使它可以提供能够从 C 语言中直接调用的 API。考虑到重新设计一个嵌入式 Web API 非常复杂,比如需要编写大量的文档,测试大量的框架以及大力的推广应用等,所以他们采用了一种不同的方式。其实现了 Chromium 嵌入式框架的 API。这意味着,正在使用 CEF 的开发者不需要对应用程序做任何修改就可以比较 Blink 和 Servo 引擎的性能,未来的开发者也不需要考虑另外一种浏览器 API。这种实现方式主要包含两个方面的工作:
1.确保 “符号(Symbol)” 完全覆盖:Servo 嵌入式库可以钩连每个 CEF 函数调用。同时,任何时候分配的供外部使用的 struct,其大小和成员位置必须与真正的 CEF 所分配的 struct 类似。符号列表可以借助 Linux 工具 nm 取得。
2.尽可能准确的模拟每个方法调用的功能:这需要完全了解 CEF 的每个函数以及它如何连接到浏览器引擎。
最新版本:
Servo 团队介绍了2025年6月的更新内容,其中一项重要新功能是支持显示动态 GIF,并且还可以通过 HTML "img" 标签加载 SVG 图像。还在推进其 Trusted Types API、输入类型 <input type=color> 支持、更好的布局和 CSS 支持,以及支持各种其他 API 和功能。其还在继续努力提升围绕 Servo 嵌入支持的开发者体验,以它作为 Chromium 的 CEF 替代方案在应用程序中利用 Servo。
官方主页:https://servo.org/

Servo aims to provide an independent, modular, embeddable web rendering engine, allowing developers to deliver content and applications using web standards.
Servo 浏览器引擎的目标是为开发者提供最大的灵活性。为了实现这个目的,它必须提供稳定的 API 和 ABI。它使用 Rust 编写,这使它可以提供能够从 C 语言中直接调用的 API。考虑到重新设计一个嵌入式 Web API 非常复杂,比如需要编写大量的文档,测试大量的框架以及大力的推广应用等,所以他们采用了一种不同的方式。其实现了 Chromium 嵌入式框架的 API。这意味着,正在使用 CEF 的开发者不需要对应用程序做任何修改就可以比较 Blink 和 Servo 引擎的性能,未来的开发者也不需要考虑另外一种浏览器 API。这种实现方式主要包含两个方面的工作:
1.确保 “符号(Symbol)” 完全覆盖:Servo 嵌入式库可以钩连每个 CEF 函数调用。同时,任何时候分配的供外部使用的 struct,其大小和成员位置必须与真正的 CEF 所分配的 struct 类似。符号列表可以借助 Linux 工具 nm 取得。
2.尽可能准确的模拟每个方法调用的功能:这需要完全了解 CEF 的每个函数以及它如何连接到浏览器引擎。
最新版本:
Servo 团队介绍了2025年6月的更新内容,其中一项重要新功能是支持显示动态 GIF,并且还可以通过 HTML "img" 标签加载 SVG 图像。还在推进其 Trusted Types API、输入类型 <input type=color> 支持、更好的布局和 CSS 支持,以及支持各种其他 API 和功能。其还在继续努力提升围绕 Servo 嵌入支持的开发者体验,以它作为 Chromium 的 CEF 替代方案在应用程序中利用 Servo。
官方主页:https://servo.org/