写点什么

Servo:开源嵌入式浏览器引擎

  • 2015-06-01
  • 本文字数:1040 字

    阅读完需:约 3 分钟

嵌入式浏览器引擎可以嵌入其它应用程序,像常规 Web 浏览器一样展示内容,并允许开发者自定义用户体验。Mike Blumenkrantz 是 Enlightenment 的发布经理,同时也是 EFL 工具包的核心开发者。近日,他撰文介绍了由Mozilla 基金会和三星共同推动的开源嵌入式浏览器引擎项目Servo。

许多公司都使用了Web 内容嵌入技术。比如,Rhythmbox、Kate、Eclipse 等流行Linux 应用程序、Microsoft Entourage、Apple Mail for Mac、Adobe 的产品以及Valve 的 Steam 客户端等等。然而,向应用程序嵌入 Web 内容的 API 却很少, WebKit 是最流行的一个。但它的问题是不稳定,开发者经常会因为需要与它的更新保持同步而不得不修改应用程序。 Blink 是 WebKit 的一个分支。它也有稳定性问题,而且只能用于 C++。要解决这些问题,可以使用 Chromium 嵌入式框架(CEF)。该框架基于 Blink 浏览器引擎,但它实现了用户与底层引擎变化的隔离,并提供了基本的 C API 以及 C++ 扩展。目前,Valve 的 Steam 客户端以及 Adobe 的多种产品都使用了该 API。

Servo 浏览器引擎的目标是为开发者提供最大的灵活性。为了实现这个目的,它必须提供稳定的 API 和 ABI 。它使用 Rust 编写,这使它可以提供能够从 C 语言中直接调用的 API。考虑到重新设计一个嵌入式 Web API 非常复杂,比如需要编写大量的文档,测试大量的框架以及大力的推广应用等,所以他们采用了一种不同的方式。

Servo 实现了 Chromium 嵌入式框架的 API。这意味着,正在使用 CEF 的开发者不需要对应用程序做任何修改就可以比较 Blink 和 Servo 引擎的性能,未来的开发者也不需要考虑另外一种浏览器 API。这种实现方式主要包含两个方面的工作:

  • 确保“符号(Symbol)”完全覆盖:Servo 嵌入式库可以钩连每个 CEF 函数调用。同时,任何时候分配的供外部使用的 struct,其大小和成员位置必须与真正的 CEF 所分配的 struct 类似。符号列表可以借助 Linux 工具 nm 取得。
  • 尽可能准确的模拟每个方法调用的功能:这需要完全了解 CEF 的每个函数以及它如何连接到浏览器引擎。

目前,Servo 尚处于起步阶段, 团队还非常小,项目还面临着一些问题,比如借助 CEF 提供的 C++ 扩展跟踪 C API 执行。因此,Mike 希望,感兴趣的开发者能够加入他们。更多信息请查看 GitHub 页面


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-01 09:498403
用户头像

发布了 1008 篇内容, 共 442.7 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

英特尔锐炫显卡助力玩家高帧率畅玩《重生边缘》,尽享超清画质

E科讯

Paimon+StarRocks 湖仓一体数据分析方案

StarRocks

数据库 大数据 数据湖 湖仓一体

LlamaIndex:将个人数据添加到LLM

3D建模设计

LLM 大语言模型

低代码+AI:拖拉拽构建漂亮活动页面

码上跃见

AI 低代码 网页设计 AIGC 低代码前端

如何部署教育云终端

青椒云云电脑

云终端

如何使用PyTorch训练LLM

3D建模设计

人工智能 LLM 大语言模型

生成式 AI 中的风险认知

3D建模设计

生成式AI

适配器模式:如何让不兼容的接口变得兼容

越长大越悲伤

设计模式 适配器模式

实信达:基于鲲鹏DevKit开发综合档案管理系统,档案管理更便捷

彭飞

引爆用户参与:消息重弹,让您的推送不再被忽略

MobTech袤博科技

前端 智能投放 Androdi 智能推送

HarmonyOS创新实训营深圳站收官,美图秀秀、邮储银行、中信银行等20余企业积极拥抱鸿蒙生态

最新动态

华为Mate60负一屏升级快捷服务 同程旅行、猫眼等入驻

最新动态

云桌面好用吗? 选购云桌面前必看的产品对比

青椒云云电脑

云桌面

火山引擎边缘云助力智能科技赋予生活更多新意

火山引擎边缘云

对象存储 视频 边缘云

浪潮云参编的《数字政府网络安全合规性指引》正式发布

云安全

文心一言 VS 讯飞星火 VS chatgpt (88)-- 算法导论8.3 1题

福大大架构师每日一题

福大大架构师每日一题

Blender中的高级边缘控制和纹理映射

3D建模设计

blender UV贴图

一文搞懂ThreadLocal原理

树上有只程序猿

多线程 ThreadLocal

私有云是什么?有哪些优势?

青椒云云电脑

公有云 私有云 云桌面

云桌面办公解决方案有哪些优势

青椒云云电脑

云桌面

AI 编程助手 Amazon CodeWhisperer 使用(持续更新中)

亚马逊云科技 (Amazon Web Services)

人工智能 亚马逊云科技

中国移动云能力中心:基于鲲鹏DevKit开发移动云云数据库,让数据并行访问更高效

彭飞

如何部署教育云终端

青椒云云电脑

云终端

IT办公云化:云桌面解决方案是大势所趋

青椒云云电脑

云桌面

ARTS打卡第四周

穿过生命散发芬芳

ARTS 打卡计划

释放开发人员生产力:“文档级”代码了解一下?

飞算JavaAI开发助手

代码质量 开发工具 开发人员

规范预算编制,打造企业全面预算管理新章程

智达方通

企业全面预算管理 预算管理 预算编制 全面用预算管理 预算预测

ARTS打卡第四周

穿过生命散发芬芳

ARTS 打卡计划

Servo:开源嵌入式浏览器引擎_语言 & 开发_谢丽_InfoQ精选文章