Shardbox.org 简介
我很高兴地宣布 shardbox.org 的发布,这是一个用于发现 shard 的数据库。
说清楚:Shardbox 不是一个 shard 注册中心。它不会作为 shard 依赖关系解析的一部分,解析完全是分散的。它只是收集有关公开可用 shard 的信息,并作为 shard 生态系统的目录。它是一个工具,可以帮助开发人员找到他们可能想要使用的现有 shard。如果你熟悉 Ruby,把它看成是 The Ruby Toolbox 而不是 Rubygems。
已经有一些服务提供了类似的功能,例如 crystalshards.org 或 shards.info。那么为什么我们需要另一个呢?现有的服务充当 GitHub API 的一个相对简单的包装器,并且不维护自己的数据库。虽然实现起来相对容易,但这种方法无法完全支持 shard 的功能,并且无法提供有关 shard 和生态系统内部关系的深入信息。
最重要的是,专注于 GitHub 排除了任何其他地方托管的 shard。Shardbox 不依赖于任何托管提供商,只要 shard 公开可用,就可以与任何 shard 存储库一起使用。如果可用,它仍然可以使用托管提供商提供的补充信息。
Shardbox 收集有关 shard 及其关系的信息。这使得发现反向依赖项和依赖项图变得容易(shards.info 有一个基本实现,但它仅限于 GitHub 搜索 API 的功能),即使对于较旧的版本也是如此。
当一个存储库从 GitHub 中删除时,它不会从 Shardbox 数据库中消失。即使对于不再可访问的 shard,信息也会保留。这可以帮助恢复否则丢失的信息,并且当存储库在其他位置可用时,可以继续使用它。任何 shard 都可以具有关联的镜像存储库。
Shardbox 提供许多其他功能,例如分类法、数据分析、发布历史、访问 shard 内容和特定于领域的搜索功能。
在 2019 年的大部分时间里,我一直在断断续续地进行这个副项目。它终于处于我认为运行良好并为所有使用和查找 shard 的人提供有用信息的阶段。我希望它能够在没有重大中断的情况下运行,但它还没有经过实战测试。可能存在磨合问题。
如果你发现任何问题,请随时在 问题追踪器 上创建一个工单。修复 bug 和增强功能的贡献也十分受欢迎。我已经有一些关于接下来做什么的想法,我也很想知道你的建议。如果你发现数据库中缺少一个 shard,你可以在 github.com/shardbox/catalog 上将其添加到目录中。有关更多详细信息,请参见 shardbox.org/contribute。