mrkeyoor.com_
Wed 23 Sept 00:36 UTC
Dataevaluationupdated 27 Aug 2026

awesome-go review

Awesome Go is a community-edited directory of Go libraries, frameworks, software, and learning resources grouped by subject. It helps developers produce a shortlist without searching the whole module ecosystem, using published admission and maintenance criteria to filter submissions.

+643stars / 7d
Verdict

Our Awesome Go build passed in 18 seconds, but 1 of 3 test packages failed after the main package spent about 360 seconds in an HTTP/2 path. The list is still one of the fastest ways to form a Go-library shortlist because its admission rules are specific and its last push was August 26, 2026. Use it for discovery, then verify the final candidates on pkg.go.dev, in their release history, and in their current issue queues.

We ran it

Lab card: what happened when we ran awesome-goScreenshot of awesome-go (awesome-go.com)
Install✓ · 6s19 packages
Build✓ · 18s
Tests✗ · 366s2 passed · 1 failed of 3 (go test)
Repo92 files~2,383 lines of source · 2.5 MB · 6 CI workflows

Answers from our run

Does awesome-go build from source?

Dependencies installed in 6 seconds (19 packages), and the build succeeded in 18 seconds. We cloned commit 6035122 into a clean Debian container with 3 CPUs and no project-specific setup.

Do awesome-go's tests pass?

Not all of them: 2 of 3 passed and 1 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use awesome-go?

Developers who need API documentation or version compatibility details: entries are short descriptions and links, so pkg.go.dev and release notes remain necessary.

What are the alternatives to awesome-go?

pkg.go.dev, Go Wiki Projects, Awesome. Our Awesome Go build passed in 18 seconds, but 1 of 3 test packages failed after the main package spent about 360 seconds in an HTTP/2 path.

Setup5/5Reading needs no setup; maintainer build passed in 18 seconds
Docs4/5Clear categories and unusually specific contribution rules
Community5/5182,372 stars with a push on August 26, 2026
Maturity4/5Long-running curation, but the current suite did not pass

Discussed on

  1. hnA curated list of Go frameworks, libraries and software158 points
  2. hnA curated list of Go Projects5 points
  3. hnAwesome-go: A curated list of awesome Go frameworks, libraries and software3 points

Who it’s for

Go developers comparing libraries across databases, CLIs, testing, web, security, and other categories.
Teams that want a human-curated shortlist before reading package docs and source code.
Maintainers whose projects meet the history, release, documentation, license, and coverage rules.
Contributors willing to correct stale links, categories, descriptions, or abandoned entries through pull requests.

Who it’s NOT for

Developers who need API documentation or version compatibility details: entries are short descriptions and links, so pkg.go.dev and release notes remain necessary.
Maintainers submitting a new project before 5 months of history or a SemVer release: the contribution rules reject both.
Teams treating inclusion as a permanent quality guarantee: maintenance relies on community reports and reviews, and the README asks users to flag unmaintained projects.
Anyone who needs objective ranking within a category: the list is alphabetized, and issue 6592 shows that even category placement can be debatable.
Buyers who need the repository checks to pass in a restricted fresh container: our run ended with 1 failed package out of 3.

Setup reality

Our sandbox installed 19 Go packages in 6 seconds and built commit 6035122 in 18 seconds. Tests failed after 366 seconds: 2 packages passed and 1 failed out of 3. The log ended in Go's HTTP/2 client stack, with the main package failing at 360.012 seconds; it showed no assertion or root cause.

Readers need no account, service, or local setup because the README and awesome-go.com are the product. Contributors need GitHub, a qualifying Go project, pkg.go.dev and Go Report Card links, a coverage report, and a narrowly scoped pull request.

The repository tools inspect links, formatting, categories, and project criteria, so network reachability is part of maintenance. The list is a starting point, not dependency verification: users still need to check licenses, supported Go versions, releases, APIs, and current issue activity for every candidate.

The list filters projects before it lists them

Awesome Go is a long README and companion website organized into categories such as databases, testing, command-line tools, web frameworks, security, artificial intelligence, and build automation. Each entry is a project name, link, and short description. That format works well when the question is broad, such as which Go routers or migration libraries deserve a closer look. It cannot answer whether one package fits a specific codebase.

Admission is stricter than adding a link to a wiki. The contribution checklist asks for at least 5 months of history, an open-source license, a root go.mod, one SemVer release, English documentation, and coverage evidence. The stated coverage guideline is at least 80% for ordinary packages and 90% for data packages when testing applies. Maintainers also review usefulness, category fit, documentation, and whether the software works as described.

Alphabetical categories give shortlists, not winners

Entries within a category are alphabetical. There is no score, recommendation order, compatibility matrix, or direct comparison of tradeoffs. That is a sensible editorial boundary: the project helps a reader discover candidates without pretending that one HTTP router, logger, or database driver wins for every workload. A serious choice still requires reading each candidate's documentation, release notes, license, API, and open reports.

The repository was only 2.5 MB in our checkout, with 92 files and about 2,383 source lines outside the huge list content counted by the lab. That small maintenance codebase checks a much larger body of outbound links and structured Markdown. The README itself remains easy to clone, search with local tools, or browse without JavaScript. The website is more convenient for casual navigation, while the repository exposes the editing history and review discussion.

What happened when we ran it

Our sandbox installed 19 packages in 6 seconds and built commit 6035122 in 18 seconds. The test run ended with exit code 1 after 366 seconds. Go reported 2 passing packages and 1 failing package out of 3. The pkg/markdown and pkg/slug packages passed quickly, while the main github.com/avelino/awesome-go package failed at 360.012 seconds.

The last log lines showed goroutines inside Go's HTTP/2 client request path. They did not show a failed URL, an assertion, or a stated reason for the timeout-length failure. We therefore cannot tell whether a remote site, network condition, or code defect caused it. The useful finding is narrower: the full check did not pass in our fresh Debian container with 3 CPUs, 8 GB of RAM, and no secrets.

Network-dependent maintenance can make checks slow

A directory of external projects has an unavoidable maintenance problem: links move, repositories archive, documentation sites disappear, and project health changes. Awesome Go uses automated checks for repository access, go.mod, SemVer tags, pkg.go.dev, Go Report Card, duplicates, alphabetical order, and entry formatting. Humans decide usefulness, accurate descriptions, category placement, documentation quality, and whether reported coverage is meaningful.

Our run lasted 366 seconds before failing, despite the local build taking only 18 seconds. The log does not prove network trouble, but its HTTP/2 goroutines show that remote HTTP work was active near the end. Contributors should expect checks to depend on services outside the repository. Readers should also understand that a passing submission review captures a point in time; the README explicitly asks the community to report packages that stop being maintained or no longer fit.

A 5-month rule trades novelty for evidence

The age and release rules reduce drive-by additions and give reviewers some history to inspect. They also mean a promising new library cannot enter immediately, even if its design is excellent. Projects without a versioned release, root module file, English API documentation, or the requested quality links face the same barrier. That bias is useful for conservative dependency selection and less useful for tracking experimental work as soon as it appears.

Classification still involves judgment. Open issue 6592 argues that Kong belongs under Standard CLI rather than Configuration because its configuration loaders supply defaults to a command parser. That disagreement is ordinary taxonomy work, but it matters to discovery: a reader may never inspect the second category. Search the whole README for important terms instead of assuming the first likely heading contains every relevant option.

Current activity supports using it as a first pass

GitHub showed 182,372 stars, 218 combined issues and pull requests, and a last push on August 26, 2026. The latest-release endpoint returned no release, which is unsurprising for a continuously edited directory and does not signal abandonment. Current pushes and issue discussions are better health evidence here than release tags. Six CI workflow files also show active automation around the list.

Awesome Go earns a bookmark because it narrows a huge ecosystem with visible rules and open review. Its 1 failed package in our lab means maintainers should reproduce the checks before changing the list. For users, the bigger caution is editorial: inclusion says a project cleared the directory's criteria, not that it is safe, compatible, or right for a particular system. Use the list to find names, then do the engineering review elsewhere.

Alternatives

ProjectWhat it isPick it when
pkg.go.devThe official Go package discovery and documentation service, backed by module metadata.pick this instead when you know a package name or need versions, imports, API docs, and module details.
Go Wiki Projects gh↗A broader community projects page maintained within the Go repository wiki.pick this instead when breadth matters more than Awesome Go's stricter admission rules.
AwesomeThe parent directory of curated lists across programming languages and technical subjects.pick this instead when the search spans more than Go or starts with a topic rather than a package category.

What people are saying

  1. [github-trending] avelino/awesome-go

Sources

  1. Awesome Go README
  2. Awesome Go contribution guidelines
  3. Awesome Go category placement report
  4. Awesome Go CI failure report

More data reviews

hydradb · DouYin_Spider · helix-db · abu · FinceptTerminal · pathway · the whole board →