阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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:497460
用户头像

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

关注

评论

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

百套Web工业组态模板图库(长期更新)

2D3D前端可视化开发

组态软件 工业组态 组态图库 web组态图库 组态界面

深度访谈 NXTF_ 负责人|虚实联动才是通向未来的数字通行证

万事ONES

常见的项目管理问题如何应对?| 得物技术

得物技术

超越 ChatGPT,GPT-4 将成为下一个“顶流”?

Zilliz

ChatGPT

云图说 | MSSI之应用业务模型ABM,搭建业务与技术的数据治理桥梁

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

YRCloudFile V6.10.0 功能新增对 NVIDIA GPUDirect 与回收站的支持

焱融科技

#高性能 #分布式文件存储 #文件存储 #全闪存储 #容器存储

人工智能迎来iPhone时刻,拟人化AI进入爆发前夜

硬科技星球

zkSync链配置metamask钱包教程、使用remix发币方法

加密先生

几种快速传输大文件的方式

镭速

社招内推!JAVA、测开、数仓、前端均有坑

Qunar技术沙龙

互联网 工作 社招

GPT-5紧急叫停?千名专家联名呼吁,AI技术的未来又该何去何从?

加入高科技仿生人

人工智能 AI技术 ChatGPT GPT-4

全球开源盛会!GOTC 2023 即将拉开帷幕,15 大分论坛不容错过!

kk-OSC

大会 #开源

Excel 进阶|只会 Excel 也能轻松搭建指标应用啦

Kyligence

数据分析 Excel数据分析 指标平台

最新版本 Stable Diffusion 开源 AI 绘画工具之汉化篇

极客飞兔

本地化 汉化教程 AI绘画 Stable Diffusion Chinese

LED显示屏与DLP拼接屏的优缺点分析

Dylan

LED LED显示屏 户外LED显示屏

聚焦云原生 | MIAOYUN入选开源GitOps产业联盟生态图景2.0

MIAOYUN

云计算 开源 云原生 开源社区 开源生态

无线WiFi信号强度统计:WiFi Signal Strength Explorer 激活版

真大的脸盆

Mac wifi Mac 软件 无线管理 WiFi统计

专业的RAW图片处理:DxO PhotoLab 6 中文直装版

真大的脸盆

Mac Mac 软件 raw raw图片处理软件 Raw图像处理软件

普通程序员要成为架构师,需要掌握哪些知识体系?

程序员小毕

Java 面试 程序人生 后端 架构师

字节跳动 Flink 大规模云原生化实践

Apache Flink

大数据 flink 实时计算

一个有效的图表图像数据提取框架

合合技术团队

人工智能 计算机视觉 表格识别 图象识别

测试流程规范如何推动落地?

老张

软件测试 目标识别 流程规范

【4月1日 上海站】融云社交泛娱乐出海赋能会,干货、礼品在等你!

融云 RongCloud

互联网 融云 泛娱乐 出海 通讯

“易+”开源 | 基于 ijkplayer 的 LLS-Player 移动端应用实践

网易云信

开源 实时音视频 低延时直播

“易+”开源 | 基于 ijkplayer 的 LLS-Player 移动端应用实践

网易智企

开源 实时音视频 低延时直播

Flink 流批一体方案在数禾的实践

Apache Flink

大数据 实时计算 flinkl

全国首个政企采购云平台:政采云基于 Dubbo 的混合云跨网方案实践

阿里巴巴云原生

阿里云 云原生 dubbo

智能、高效、便捷问题定位利器 —— 应用诊断分析平台 ATP 上线

OpenAnolis小助手

内存泄露 龙蜥社区 应用诊断 ATP 异常行为

CloudQuery 社区版重启 | 我们做了哪些准备?

BinTools图尔兹

数据库 社区版 数据库管理系统

超级MMM互助盘DAPP系统开发源代码(案例演示)

开发微hkkf5566

NFTScan 与 Dmail 达成合作伙伴,双方在 NFT 数据领域展开合作

NFT Research

NFT

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