本周项目:Beaker 浏览器
本周我们采访了 Paul Frazee,Beaker 浏览器的创建者。Beaker 是一款实验性的点对点网络浏览器,它使用 Dat 协议来托管用户设备上的站点。
Beaker 是什么?你为什么创建它?
Beaker 是一款参与式浏览器。它是为独立黑客打造的浏览器。
Web 是闭源的。如果你想影响社交媒体的运作方式,你必须在 Facebook 或 Twitter 工作。对于搜索,你得去 Google。控制权掌握在公司手中,而不是用户自己。
借助 Beaker,我们有了一种新的 Web 协议:去中心化存档传输(Decentralized Archive Transport)。简称 “Dat”。它可以按需创建站点,免费提供,然后从设备共享出去。无需服务器。这就是我们的创新。
当你在 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 方面的建议吗?
- 使用现有的构建工具。相信我,你不会想自己去摸索解决方案的。使用 electron-builder。使用样板代码仓库。
- 如果你需要在 Electron 仓库中提 issue,多花点精力使其易于重现。你会更快得到回复,团队也会很感激。更好的是,尝试自己修复它。看看内部原理其实挺有趣的。
- 至少通读一遍所有的指南和高级文档。
- 别构建浏览器,市场已经饱和了。