本周项目:Beaker 浏览器
本周我们采访了 Paul Frazee,他是 Beaker 浏览器的创建者。Beaker 是一款实验性的点对点网页浏览器,它使用 Dat 协议从用户的设备托管网站。
Beaker 是什么?为何创建它?
Beaker 是一款参与式浏览器。它是为独立黑客打造的浏览器。
网页是闭源的。如果你想影响社交媒体的运作方式,你必须在 Facebook 或 Twitter 工作。对于搜索,则是 Google。控制权掌握在公司手中,而非用户自己。
借助 Beaker,我们有了一个新的网络协议:去中心化档案传输协议。"Dat"。它按需免费创建网站,然后从设备共享它们。无需服务器。这是我们的创新。
当你在 Beaker 中访问一个 Dat 网站时,你会下载这些文件。该网站永远属于你。你可以保存它,派生它,修改它,并免费分享你的新版本。它都是开源的。
这就是它的意义所在:我们正在为开源网站打造一款浏览器。我们希望它能成为一个社交破解工具包。
谁应该使用 Beaker?
黑客。模组制作者。创意人士。喜欢修修补补的人。
如何创建一个使用 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。它看起来好多了,但我尝试了三四次才弄好。
Electron 在哪些方面可以改进?
如果能将 devtools 停靠在 webview 内部,那将非常棒。
Beaker 的下一步计划是什么?
Dat 网站的安全 DNS 名称。一个可社交配置的 URL 方案,称为"应用方案"。更多 Dat API。
对于那些可能对项目贡献感兴趣的人,Beaker 在哪些方面需要帮助?
我们有很多待解决的问题。别害怕给我发消息。freenode 上的 #beakerbrowser 频道。我们为贡献者维护一个页面,我们会把你加进去。如果你来奥斯汀,我请你喝啤酒。
有什么对其他开发者可能有用的 Electron 技巧吗?
- 使用现有的构建工具。相信我,你不会想和自己的解决方案搏斗的。使用 electron-builder。使用模板仓库。
- 如果你需要在 Electron 仓库中打开一个问题,请多花点心思让它易于复现。你会更快得到回复,团队也会很感激。更好的是,尝试自己修复它。查看内部结构实际上非常有趣。
- 至少通读一遍所有的指南和高级文档。
- 不要构建浏览器,这是一个饱和的市场。