跳到主要内容

本周项目:Beaker 浏览器

·阅读时长 4 分钟

本周我们采访了 Paul Frazee,Beaker 浏览器的创建者。Beaker 是一款实验性的点对点网络浏览器,它使用 Dat 协议来托管用户设备上的站点。


Beaker 是什么?你为什么创建它?

Beaker 是一款参与式浏览器。它是为独立黑客打造的浏览器。

Web 是闭源的。如果你想影响社交媒体的运作方式,你必须在 Facebook 或 Twitter 工作。对于搜索,你得去 Google。控制权掌握在公司手中,而不是用户自己。

借助 Beaker,我们有了一种新的 Web 协议:去中心化存档传输(Decentralized Archive Transport)。简称 “Dat”。它可以按需创建站点,免费提供,然后从设备共享出去。无需服务器。这就是我们的创新。

Beakers Protocols

当你在 Beaker 中访问一个 Dat 站点时,你会下载这些文件。这个站点永远属于你。你可以保存它、派生它、修改它,并免费分享你的新版本。这一切都是开源的。

这就是它的意义所在:我们正在为开源网站构建一个浏览器。我们希望它成为一个用于社交编程的工具包。

谁应该使用 Beaker?

黑客。Modder。创意型人士。喜欢钻研的人。

如何创建一个使用 Dat 的新项目?

我们有一个命令行工具叫 bkr,有点像 git + npm。下面是创建站点的方法

$ cd ~/my-site
$ bkr init
$ echo "Hello, world!" > index.html
$ bkr publish

下面是派生站点的方法

$ bkr fork dat://0ff7d4c7644d0aa19914247dc5dbf502d6a02ea89a5145e7b178d57db00504cd/ ~/my-fork
$ cd ~/my-fork
$ echo "My fork has no regard for the previous index.html!" > index.html
$ bkr publish

这些站点随后会从你的浏览器托管出去。这有点像 BitTorrent;你在一个 P2P 网络中分享这些站点。

如果你想要 GUI,我们浏览器内置了一些基本工具,但我们正将这些工具推向用户空间。将来都会是可修改的用户应用。

你为什么选择在 Electron 上构建 Beaker?

对于这个项目来说,这是显而易见的。如果我自己去分叉 Chrome,我现在就得写 C++ 了!没人想做那件事。我熟悉 Web 技术栈,并且可以用它快速工作。这是个显而易见的选择。

说实话,我不确定没有 Electron 我能否做到这一切。它是一款出色的软件。

你在构建 Beaker 时遇到过哪些挑战?

其中一半是在摸索工具,弄清楚我能最大限度地利用它们到什么程度。

构建浏览器本身相当容易。Electron 实际上就是构建浏览器的工具包。 ...除了浏览器标签页;那花了我好久才做好。我最终决定深入学习如何制作 SVG。现在看起来好多了,但我迭代了 3 或 4 次才做对。

Electron 在哪些方面应该改进?

如果能将开发者工具停靠在 webview 中,那就太棒了。

Beaker 接下来的发展计划是什么?

为 Dat 站点提供安全的 DNS 名称。一种社会可配置的 URL 方案,称为“应用方案”。更多 Dat API。

对于可能对贡献项目感兴趣的人,Beaker 在哪些方面需要帮助?

我们有很多待解决的问题。别害怕联系我。在 freenode 的 #beakerbrowser 频道找我。我们维护一个贡献者页面,会把你加进去。如果你来奥斯汀,我请你喝啤酒。

对其他开发者有什么 Electron 方面的建议吗?

  1. 使用现有的构建工具。相信我,你不会想自己去摸索解决方案的。使用 electron-builder。使用样板代码仓库。
  2. 如果你需要在 Electron 仓库中提 issue,多花点精力使其易于重现。你会更快得到回复,团队也会很感激。更好的是,尝试自己修复它。看看内部原理其实挺有趣的。
  3. 至少通读一遍所有的指南和高级文档。
  4. 别构建浏览器,市场已经饱和了。