Show HN:重振 Dillo 浏览器

一项重振超轻量级 Dillo 网页浏览器的努力引发了强烈兴趣,尤其是那些重视在老旧或低配置硬件上进行快速、极简浏览的用户。评论者强调,Dillo 的小内存占用、基于插件的可扩展性,以及刻意不支持 JavaScript,既是安全优势,也是当今以 JS 为主的网站上的重大限制。维护者的重点是让 Dillo 继续留在 Linux 和 BSD 发行版中,在其面向 HTML4/CSS2 的目标范围内改进标准支持,并在保留其作为主流浏览器之外简单、高效替代方案这一定位的同时,可能现代化构建系统。

总体反应

  • 许多评论者表达了强烈的怀旧之情和感激;不少人仍在日常使用 Dillo,尤其是在非常老旧或低配置的机器以及慢速连接上。
  • Dillo 因其极小的内存占用、速度快,以及通过简单的配置和开关让用户拥有完全控制感而受到称赞。

性能与兼容性

  • 在以文本为主、CSS 较少的网站上表现良好(文档、Wikipedia、HN、“小型网络”页面)。常常类似“阅读模式”。
  • 对现代网站的渲染较弱:无法通过 Acid2,目标是 HTML 4.1 和 CSS 2.1,仅部分支持 CSS,没有 HTML5 特性,布局经常会出问题。
  • 没有 JavaScript 引擎;许多重 JS 或 SPA 风格的网站根本无法加载内容。有些网站在用户代理设为旧式/嵌入式配置文件(例如 PSP)时会提供更简化的版本。
  • 一些旧特性如框架(frames)缺失,这限制了它在某些文档中的使用。

安全性与 JavaScript

  • 缺少 JS 被许多人视为重大的安全和性能优势,尤其适合打开可疑链接时使用。
  • 也有人认为这是一种误导:Dillo 仍然是未沙箱化的 C/C++ 代码,依然会解析复杂格式,理想情况下应该在容器中运行(例如 bubblewrap)。
  • 讨论了通过轻量级引擎(例如 QuickJS)加入 JS;维护者和几位评论者认为这违背了 Dillo 的目标,并带来很大的安全与复杂性负担,不过也有人指出 JS 在老硬件上也能运行得相当可接受。

插件与扩展系统(DPI)

  • DPI 被广泛称赞为简单而强大:许多核心功能(书签、下载、Cookie、某些协议)都是通过 stdin/stdout 通信的插件实现的。
  • 外部插件增加了 Gopher、Gemini、git、man: 等协议;一些分支/移植版(例如 Dillo+ 和其他项目)在此基础上扩展了更多协议。
  • 围绕 Gemini 插件的证书固定(certificate pinning)用户体验正在积极讨论和改进。

构建、可移植性与维护

  • 新的维护方向旨在让 Dillo 保持在各发行版中,加入测试套件/模糊测试,并最终现代化构建系统(CMake/Meson,还是保留 make/autotools)。
  • 跨平台 CI 和托管取舍也在讨论中:使用 GitHub 是为了可见性和 CI,尽管有些人更偏好自托管或联邦式代码托管平台。
  • 关于 OpenSSL/LibreSSL 的 SSL/TLS 问题已有报告并迅速修复;macOS 以及各种小众架构(m68k、VAX、Atari、上网本、Raspberry Pi Zero)都是活跃目标。

使用场景与替代方案

  • 典型用途:在老硬件上的轻量浏览、本地文档、smolweb 风格内容,以及作为查看不可信 URL 的“安全”浏览器。
  • 对比将 Dillo 放在从文本模式浏览器(lynx/elinks/w3m)到 Dillo/Netsurf,再到完整浏览器(Firefox/Chromium)的谱系中。
  • 提到的其他替代品针对不同细分领域:Netsurf、Pale Moon、K-Meleon、Otter、文本模式客户端,以及各种轻量版 Electron 替代方案;共识是 Dillo 是最轻量的之一,但兼容性也最弱。