在哪里可以找到 golang 模块?

Where to find golang modules?

我来自 node.js 生态系统。

Golang 终于发布了它的模块系统,我看了一些关于它的文章:

但是,在那之后,我仍然没有找到像 npmjs.com 这样可以找到可用的 go 模块的地方。

Go 模块没有中央存储库。只要您遵循发布 Go 包的约定(参见 PackagePublishing),go 工具将能够获取您的 package/module,无论您在哪里发布它。

为了发现围棋世界中已有的东西,一个很好的起点是 Awesome Go,一个很棒的围棋精选列表 packages/modules。

还没有中央存储库,但请注意模块支持在 Go 1.12 中仍处于试验阶段。它将在 Go 1.13(计划于 2019 年 8 月)中默认启用。

查看 The Go Blog: Go Modules in 2019

For publicly-available modules, we intend to run a service we call a notary that follows the module index log, downloads new modules, and cryptographically signs statements of the form “module M at version V has file tree hash H.” The notary service will publish all these notarized hashes in a queryable, Certificate Transparency-style tamper-proof log, so that anyone can verify that the notary is behaving correctly. This log will serve as a public, global go.sum file that go get can use to authenticate modules when adding or updating dependencies.

We are aiming to have the go command check notarized hashes for publicly-available modules not already in go.sum starting in Go 1.13.

Module Discovery

Finally, we mentioned earlier that the module index will make it easier to build sites like godoc.org. Part of our work in 2019 will be a major revamp of godoc.org to make it more useful for developers who need to discover available modules and then decide whether to rely on a given module or not.

Big Picture

This diagram shows how module source code moves through the design in this post.

https://search.gocenter.io 可用于搜索 Go 模块,了解模块版本的流行程度,甚至帮助模块作者与他们的消费者建立联系。这是自 2019 年 1 月末以来的 GA,并在全球范围内可用。

我也有同样的问题。如果您从 built-in 包 (https://golang.org/pkg/) 开始,然后点击一些 non-obvious 链接,您最终会到达这里:

https://pkg.go.dev/