Where do people find go packages? And is there any interest in something better?

I’m new to go, but I’m already missing something like NPM for package discovery. I’ve already seen that this question get asked in various places, but: Where do people discover go packages?

Here are the places I’ve found so far.

  • pkg.go.dev (or godoc.org)
  • GitHub search for keywords with language:go
  • search.gocenter.io
  • go-search.org
  • awesome-go

I find these a little lacking for a few reasons.

  • pkg.go.dev
    • No sorting
    • Publication is via proxy use?
  • godoc.org
    • No sorting
    • Publication is via explicit search?
  • GitHub
    • Doesn’t really search for consumable modules, just all go language projects.
    • Stars are the metric of popularity, not usage.
  • search.gocenter.io
    • No sorting
    • Terrible matching
    • Must be published to jfrog?
    • Just kinda bad.
  • go-search.org
    • Currently down.
  • awesome-go
    • Just a static document.
  • None of them have any sort of metadata mechanism (urls, authors, contacts, keywords, etc.)

I’m thinking of creating a site to add some of the things I want.

  • Search for and see inline metadata
    • urls (issue tracker, homepage, etc.)
    • authors/contributors/contacts
    • organization
    • keywords
    • etc.
  • Sorting
    • popularity
      • Greatest of: Favorited count, GitHub stars, or GitHub stars equivalent.
    • import count
      • Based on go.mod content in indexed packages
    • activity
      • Based on version count, frequency, most recent version increment.
    • quality
      • Tests, etc.
  • Save “favorite” packages
  • CLI to “publicize” packages
    • An explicit way to add a package to the index.
    • Init functionality to bootstrap metadata.

This is a dangerous question to ask, but would this project be interesting/useful/welcomed by anyone?

This is also my second foray into the Go community, so I’m curious to see what style of response this gets :).

@ChrisAckerman I usually use Godoc to browse the packages I want, get a good look at it and if found to be interesting, go to its respective github link to get the source. Never found this tedious. Compared to other languages, package discovery was always simpler imo.

I just Google it, go(lang) $topic package, and that’ll generally get good results.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.