我来自node.js生态系统。
Golang最终发布了它的模块系统,我已经阅读了一些关于它的文章:
但是,在那之后,我仍然没有找到像npmjs.com这样的地方,在那里我可以找到可用的模块。
目前还没有中央存储库,但请注意,模块支持在Go 1.12中仍处于试验阶段。默认情况下,它将在Go 1.13(计划于2019年8月)启用。
看看The Go Blog: Go Modules in 2019。
对于公开可用的模块,我们打算运行一个服务,我们称之为遵循模块索引日志的公证人,下载新模块,并加密签署“模块M的版本V具有文件树哈希H”形式的语句。公证服务将在可查询的Certificate Transparency风格的tamper-proof log中发布所有这些经过公证的哈希,以便任何人都可以验证公证人的行为是否正确。此日志将充当公共的全局
go.sum
文件,go get
可以在添加或更新依赖项时使用该文件对模块进行身份验证。我们的目标是从Go 1.13开始,对于尚未在
go.sum
中公开可用的模块,使用go命令检查公证的哈希值。
和
模块发现
最后,我们之前提到模块索引可以更容易地构建像godoc.org这样的网站。我们2019年的部分工作将是godoc.org的重大改进,使其对需要发现可用模块然后决定是否依赖给定模块的开发人员更有用。
大图
此图显示了此帖子中模块源代码如何在设计中移动。
Go模块没有中央存储库。只要您遵循发布Go包的约定(请参阅PackagePublishing),go工具将能够获取您的包/模块,无论您在何处发布它。
为了发现Go宇宙中已有的东西,一个很好的起点是Awesome Go,一个精彩的Go包/模块的精选列表。