本周项目:Beaker 浏览器
本周,我们与 Paul Frazee 进行了交谈,他是 Beaker 浏览器 的创建者。Beaker 是一款实验性的点对点 Web 浏览器,它使用 Dat 协议从用户的设备托管网站。
什么是 Beaker,你为什么要创建它?
Beaker 是一款参与式浏览器。它是为独立黑客设计的浏览器。
Web 是闭源的。如果你想影响社交媒体的工作方式,你必须在 Facebook 或 Twitter 工作。对于搜索,则是 Google。控制权掌握在公司手中,而不是用户自己手中。
使用 Beaker,我们有了一个新的 Web 协议:去中心化档案传输。“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。它看起来好多了,但在我把它做好之前,我尝试了 3 或 4 次迭代。
Electron 在哪些方面应该得到改进?
如果我可以在 webview 内部停靠开发者工具,那就太好了。
Beaker 的下一步计划是什么?
为 Dat 网站提供安全的 DNS 名称。一种可社交配置的 URL 方案,称为 “应用程序方案”。 更多 Dat API。
对于可能对参与该项目感兴趣的人,Beaker 在哪些方面需要帮助?
我们有很多未解决的问题。不要害怕联系我。在 freenode 上使用 #beakerbrowser。我们维护了一个 贡献者页面,我们会将你添加到其中。如果你访问奥斯汀,我请你喝啤酒。
对其他开发人员可能有所帮助的 Electron 提示?
- 使用现有的构建工具。相信我,你不想自己去解决这些问题。使用 electron-builder。使用样板库。
- 如果你需要在 Electron 存储库中打开一个问题,请尽力使其易于重现。你将更快地得到回复,团队也会感谢你。更好的是,尝试自己修复它。查看内部结构实际上非常有趣。
- 至少通读一遍所有指南和高级文档。
- 不要构建浏览器,这是一个饱和的市场。