0

I am from node.js ecosystem.

Golang has released its module system finally and I have read some articles about it:

But, after that, I still didn't find a place like npmjs.com where I can find available go modules.

icza
  • 389,944
  • 63
  • 907
  • 827
Yao Zhao
  • 4,373
  • 4
  • 22
  • 30

4 Answers4

5

There is no central repository for Go modules. As long as you follow the conventions for publishing Go packages (see PackagePublishing), the go tools will be able to fetch your package/module, no matter where you published it.

In order to discover what is already out there in the Go universe, a good starting point is Awesome Go, a curated list of awesome Go packages/modules.

ftl
  • 3,014
  • 1
  • 24
  • 25
5

There is no central repository yet, but note that the module support is still experimental in Go 1.12. It will be enabled by default in Go 1.13 (scheduled for August 2019).

Check out 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.

and

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.

enter image description here

Community
  • 1
  • 1
icza
  • 389,944
  • 63
  • 907
  • 827
  • That's all about trust though, not about having a central repository for finding modules like npm.org. – Adrian Apr 11 '19 at 13:31
  • @Adrian The notary, yes, but `godoc.org` will be something like that: _"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."_ – icza Apr 11 '19 at 13:48
5

https://search.gocenter.io can be used to search for Go modules, know more about popularity of a module version and even help module authors connect with their consumers. This is GA since end of January 2019 and globally available.

Ankush Chadha
  • 224
  • 3
  • 4
1

I had the same question. If you start off with the built-in packages (https://golang.org/pkg/), and you follow some non-obvious links, you eventually end up here:

https://pkg.go.dev/

Tim Crowley
  • 355
  • 4
  • 10