Hacker News 中文摘要

RSS订阅

Show HN:我花两年开发的新浏览器,今日通过Acid 3测试 -- Show HN: I worked on a new browser for 2 years, today it passed Acid 3

文章摘要

一个名为cwbrowser的浏览器引擎完全用Zig语言从零编写,仅借用Google的V8处理JavaScript。经过两年独立开发,该引擎极为轻量,早期测试显示速度约为Chrome的两倍,并完美通过了Acid3标准测试。

文章总结

cwbrowser是一款完全用Zig语言从头编写的浏览器引擎,搭配谷歌V8处理JavaScript。经过两年独立开发,它极其轻量,早期测试中速度约为Chrome的两倍。

该浏览器不使用Chromium、WebKit或Gecko,其HTML解析器、CSS层叠、布局引擎和渲染管线均用Zig手写,仅借用了谷歌的V8作为JavaScript虚拟机。结果是一款小巧到能端到端理解、且在相同硬件上比主流引擎更快的浏览器。

cwbrowser在Acid3测试中获得了完美的100/100分,与主流引擎达到相同的标准。其渲染引擎完全由一人耗时两年独立开发,包括解析器、CSS、布局和渲染。

目前,cwbrowser正在为macOS Apple Silicon准备公开测试版。感兴趣的用户可发送邮件至haojng@gmail.com获取通知。

该浏览器的工作原理是:用Zig编写整个渲染引擎,实现手动内存管理,无垃圾回收器或隐藏运行时。HTML和DOM部分使用从头编写的分词器和树构建器,生成实时DOM供引擎和V8操作。CSS部分有原创解析器和层叠逻辑,处理选择器、特异性、继承和盒模型,为布局阶段提供输入。布局和渲染采用手写的块/内联布局及渲染管线,逐像素匹配Acid3参考。JavaScript则嵌入谷歌V8并绑定到DOM。

为何要重写浏览器?现代网络依赖三个庞大的渲染引擎,均源自二十多年前的代码。cwbrowser的尝试证明,使用现代系统语言,仅借用JS虚拟机这一无需重造的组件,就能重建一个更小、更快、一人可理解的浏览器引擎。Acid3满分通过,是该方法应对真实标准的第一步证明。

评论总结

根据评论内容,主要观点和论据如下:

正面评价(认可度较高): - 对独立开发者构建浏览器引擎表示赞赏,认为“比Chrome更快且100%通过Acid3测试”是重大成就(评论4:“Faster than chrome and 100% clearance of acid3 is certainly interesting, and a great achievement for a solo dev”) - 期待开源版本和Linux支持(评论10:“Any plans to release it for Linux? Would love to test it”) - 对项目潜力表示好奇,询问是否可像Servo一样供他人构建浏览器(评论11:“Is this gonna be like Servo where people can build a browser around this”)

质疑与批评(认可度较低): - 认为项目缺乏实质内容,仅有一个“匆忙生成的落地页”,无源代码或二进制文件(评论15:“This just a hastily-extruded landing page with no details”;评论18:“No source code, no binary, just a page with some claims”) - 怀疑内容由AI生成,称“整个看起来像巨大的AI垃圾”(评论17:“The whole thing looks like a giant AI slop”) - 指出Acid3测试不足以衡量现代浏览器兼容性,实际需通过Web Platform Tests(评论21:“Acid3 is 100 tests but to have a browser that works on any real percentage of the internet you need to pass the over 52000 tests”)

技术讨论: - 询问浏览器引擎开发方法、规范遵循、合规性测试等(评论16:“how exactly do you go about writing your own browser engine... how do you test something like this”) - 对比其他项目如Fastrender(AI生成的Rust引擎)和Lightpanda(评论8、13) - 关注是否开源及许可证(评论9、22)

平衡总结:评论者对独立开发者的努力表示认可,但普遍质疑项目缺乏可验证的实质内容(无源码、无二进制、仅靠Acid3测试),并怀疑其AI生成性质。正面评价集中于技术潜力,负面评价则强调缺乏透明度和实质性成果。