Miniblink 简介
Miniblink 是一个独立的、追求极致小巧的浏览器内核项目。它保持了约 10M 的极简大小,是所有同类产品中最小的体积,同时支持 Windows XP 和 NPAPI。
为什么选择 Miniblink?
市面上可用的浏览器内核组件主要有以下几种:WebKit、CEF、NW.js、Electron。让我们来看看它们各自的优缺点:
CEF
优点:
- 集成 Chromium 内核,对 H5 支持全面
- 用户群体大,教程、示例和资源丰富
缺点:
- 体积过大(最新版本超过 100M)
- 需要携带大量文件
- 新版本不支持 Windows XP(Chromium M49 之后)
- 多进程架构导致资源消耗大
NW.js 和 Electron
优点:
- 可以使用 Node.js 资源
- 自带各种 API 绑定
- 基于 JS 的开发方案,前端开发友好
- 周边资源丰富
缺点:
- 与 CEF 类似,体积过大
- 资源消耗大
原版 WebKit
缺点:
- Windows 版本更新缓慢
- 体积超过 20M
- 周边资源稀少
- 无法使用 Safari 的开发者工具
WKE
- 老旧的 WebKit 内核裁剪版
- 体积小但 bug 较多
Miniblink 的优势
1. 极致精简
- 严格限制大小
- 移除不必要的功能(如音视频)
- 专注于网页排版和渲染
- 使用 VC6 CRT 运行
2. 技术先进性
- 紧跟最新 Chromium
- 可利用 Chromium 相关资源
- 计划支持 Electron 接口
- 支持无缝替换 Electron
如何使用 Miniblink?
Miniblink 提供了以下接口:
- Electron 接口
- WKE 接口
注意:早期版本提供的 CEF 接口已被废弃。
示例项目
- Brackets(基于 CEF 的开源编辑器)
- VS Code(通过 Electron 接口运行)
技术实现
如何实现极致精简?
主要通过以下方式:
- 从 Chromium 中抽离 Blink
- 补充 CC 层(硬件渲染层)
- 重写复杂的渲染架构
相比 WebKit 的优势
- 支持多线程解析 HTML token
- 内置 Blink GC 回收器
- 多线程录制回放渲染机制
- 更快的解析渲染速度
即将开源 Blink GC 组件,这是一个在 C++ 中实现的垃圾回收机制,让 C++ 开发更接近 Java 的体验。