跳转到主内容

本周主题:Beaker浏览器

· 阅读时间:约 6 分钟

本周我们约见了Paul FrazeeBeaker浏览器的创始人 。 Beaker是一个实验性的,在客户端使用Dat协议托管网站的对等网络浏览器。


Beaker是什么以及创造它的理由?

Beaker是一个参与式浏览器。 它是为独立骇客们打造的浏览器。

互联网是一个封闭的信息源。 如果你想对社交媒体的运转方式施加影响的话,你必须要在Facebook或Twitter里工作。 对搜索引擎巨头Google来说, 控制权掌握在公司而不是用户自己手中。

通过Beaker,我们有了一个新的Web协议: Decentralized Archive Transport。 "Dat"协议 免费创建站点,然后从设备中共享它们, 无需服务器。 这就是我们的革新之处。

Beaker协议

当你用Beaker访问一个Dat站点时,你会下载该站点的文件。 这个站点会永远是你的。 你可以保存它,复刻它,修改它,并自由地分享你的新版本。 这些都是开源的。

所以这是我们的目的:我们正在打造一个支持开放式网站的浏览器。 我们希望它成为社交骇客的一个工具。

谁会使用Beaker?

骇客们。 改装者。 创意者们。 喜欢折腾的人。

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

我们有个类似于git加npm的 命令行工具bkr 以下是如何创建一个站点:

$ bkr fork dat://0ff7d4c7644d0aa19914247dc5dbf502d6a02ea89a5145e7b178d57db00504cd/ ~/my-fork
$ cd ~/my-fork
echo "我的叉不考虑上一个索引。 tml!" > index.html
$ bkr 发布

以下是如何复刻一个站点:

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

这些网站随后用你的浏览器进行托管。 这有点像BitTorren;你在一个P2P网格中分享网站。

如果你想要一个用户界面,我们在浏览器中内置了一些基础工具,但我们正在将这些工具推送到用户手中。 这些以后都将成为可更改的用户应用程序。

为何选择使用Electron来构建Beaker?

对这个项目来说是显而易见的。 如果我独自复刻了Chrome,我这会儿就应该在写C++了! 没人想要那么做。 我了解整个Web技术栈,并且我可以很快速地用它来工作。 这是个不用多想就能做出的选择。

事实是,我不太确定在没有Electron的情况下我能做这件事。 这是一个伟大的软件。

在构建Beaker的过程中遇到过哪些难题?

其中一半都是在捣鼓工具,我能解决的都尽量解决了。

构建一个浏览器是非常容易的。 Electron基本上就是个构建浏览器的工具包。 ...除了浏览器的页签;这花了我很长时间才改正过来。 我最终奔溃了,并且学会了如何创建SVG。 这看起来好多了,但花了我3,4次迭代才弄好。

应在哪些领域改进Electron?

如果我可以将devtools停靠在一个webview中,那真是太好了。

Beaker的后续进展?

用于Dat站点的安全DNS域名。 一个名为"app scheme."的公共配置化URL方案。更多Dat的API。

对于那些可能有兴趣为本项目作出贡献的人们来说,Beaker在哪些方面需要帮助?

我们有很多未解决的问题。 不要害怕联系我。 在freenode的#beakerbrowser频道上。 我们为贡献者保留了一个页面,同时我们将会把你添加进来。 并且如果你访问奥斯汀,我会为你买一杯啤酒。

Any Electron tips that might be useful to other developers?

  1. 使用现成的构建工具。 相信我,你不会想纠结于你自身的解决方案中。 使用electron-builder。 使用样板仓库。
  2. 如果你需要在Electron仓库中创建一个issue,请花些功夫使其易于复现。 你将会更快地得到响应,团队也会对此表示感谢。 如果你能试着自己去修复它,那是更好的。 事实上,看到问题的核心是非常有意思的一件事。
  3. 至少阅读一次所有的指南和进阶文档。
  4. 不要构造浏览器,这是一个已经饱和的市场。