mrkeyoor.com_
Sat 07 Nov 15:53 UTC
Dev Toolsevaluationupdated 05 Oct 2026

awesome-go review

Awesome Go is an English-language directory of Go libraries, frameworks, and software, grouped by the jobs they do. It helps you find projects to investigate when you don't already know which package to search for.

+892stars / 7d
Verdict

Our Awesome Go run installed 19 packages in 32 seconds and built successfully in 42 seconds, but its test command failed after 369 seconds with 4 passed and 3 failed out of 7. Bookmark the directory when you can assess the projects it surfaces, and check each candidate's current documentation before adoption. Contributors should resolve the failed suite in their own environment before relying on the local validation path.

We ran it

Lab card: what happened when we ran awesome-goScreenshot of awesome-go (awesome-go.com)
Install✓ · 32s19 packages
Build✓ · 42s
Tests✗ · 369s4 passed · 3 failed of 7 (go test)
Repo92 files~2,321 lines of source · 2.5 MB · 6 CI workflows

Answers from our run

Does awesome-go build from source?

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

Do awesome-go's tests pass?

No. The project's own test command finished in 369 seconds and reported 4 passed, 3 failed (go test).

Who should not use awesome-go?

Developers who want a ranked winner: the contribution rules require alphabetical entries, and the README gives short descriptions rather than comparative reviews.

What are the alternatives to awesome-go?

Pkg.go.dev, GoBooks, Uhub Awesome Go. Our Awesome Go run installed 19 packages in 32 seconds and built successfully in 42 seconds, but its test command failed after 369 seconds with 4 passed and 3 failed out of 7.

Setup5/5Public browsing needs no setup; contributor tests failed in our run
Docs4/5Clear categories and submission rules, brief project descriptions
Community5/5October 13 push and recent work on entries and maintainer approvals
Maturity4/5Established directory with selection rules; sandbox suite failed

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 exploring an unfamiliar task, such as choosing a database driver or a terminal interface library.
Technical leads collecting candidates they can evaluate through each project's documentation and maintenance record.
Package authors whose projects meet the directory's documentation, release, and maintenance rules.

Who it’s NOT for

Developers who want a ranked winner: the contribution rules require alphabetical entries, and the README gives short descriptions rather than comparative reviews.
Beginners who need a sequential Go course: the README organizes projects by category, leaving you to choose resources and a learning order.
Authors seeking immediate inclusion for a new package: the guidelines require at least five months of history, English documentation, and a versioned release.

Setup reality

Our sandbox installed commit caa69af in 32 seconds, adding 19 packages, and built it successfully in 42 seconds. Tests failed with exit 1 after 369 seconds: 4 passed and 3 failed out of 7. The log tail shows HTTP/2 client goroutine traces and a failed root package, while pkg/markdown and pkg/slug passed. It doesn't establish the cause.

Reading the README or awesome-go.com needs no credentials, service deployment, or configuration. Contributors working on the static-site generator need Go and the repository's templates. The current main.go optionally reads GITHUB_TOKEN for project metadata and accepts AWESOME_SKIP_FETCH to skip fetching it. Those source details describe the current generator, not a measured requirement of our October 4 run.

The fresh Debian container had 3 CPUs and 8 GB of RAM, used golang:1.24-bookworm, and ran without secrets or elevated privileges. The stack trace points into Go 1.25.0, so check the chosen revision's toolchain settings. Our scan found 6 CI workflow files, no Dockerfile, and no tests directory. The test command nevertheless ran and failed.

Alphabetical entries help you find candidates, then leave you to choose

Open Awesome Go's Logging category and you'll find zap and zerolog among many short project descriptions. Their position tells you where their names fall alphabetically. You still have to decide which API belongs in your application. That's the bargain here: a developer can find unfamiliar Go libraries by task without treating a search engine's first result as the default choice.

The directory covers database drivers, command-line interfaces, authentication, and much else. Our checkout contained 92 files and about 2,321 lines of source in 2.5 MB, reflecting the difference between a large reading list and the smaller codebase that maintains it. For an experienced Go developer exploring a new problem, the category structure is useful. A beginner looking for a lesson sequence will have more sorting to do.

Submission rules screen projects without ranking them

The contribution guidelines require English documentation, an open-source license, a versioned release, and a history of maintenance. Submissions must describe a single project in its proper category, with restrained wording. Those requirements give inclusion some meaning. They also exclude authors seeking immediate exposure for a newly published package, even when the package solves a useful problem.

Our scan found 6 CI workflow files, which is evidence of automation around the directory. The guidelines distinguish automatic submission checks from judgments maintainers still make, including whether a description is accurate and the package belongs in its category. Inclusion should earn a project a closer look. It cannot settle how that project's design fits your service or how its maintainers will handle your next bug report.

What happened when we ran it

Our run installed commit caa69af in 32 seconds, adding 19 packages, and the build succeeded in 42 seconds. We cloned and ran it on October 4, 2026, in an unprivileged Debian container with 3 CPUs, 8 GB of RAM, no secrets, and the golang:1.24-bookworm image. Those are successful repository steps, with a specific environment and commit attached to them.

The test command failed with exit 1 after 369 seconds. The lab summary recorded 4 passed and 3 failed out of 7. The tail marks the root package, github.com/avelino/awesome-go, as failed after 360.019 seconds, while pkg/markdown and pkg/slug passed. It also shows HTTP/2 client goroutine traces. That excerpt doesn't identify the failing assertions or establish why the root package failed. A network diagnosis would go beyond the evidence.

Browsing needs no runtime, while contributors have Go tooling to manage

The README's category links and awesome-go.com are the normal reading paths. You don't need an account, an API credential, or a local server to browse the public list. The repository's main.go generates static pages from the README and templates. Running that machinery makes sense if you're changing the directory's presentation, rather than simply picking a logging library.

The sandbox image started with Go 1.24, yet the supplied stack trace points into a Go 1.25.0 toolchain. A contributor should check the chosen revision's toolchain requirements rather than assume the container label describes everything used during execution. Our scan found no Dockerfile or tests directory. Neither finding means tests are absent: the test command did run, and its package results are in the log.

Logging entries point you to documentation

In the Logging section, zap's entry describes structured logging and zerolog's entry emphasizes JSON output. Those descriptions help you decide which documentation to open, but performance language in a listing remains the listed project's claim. Read the examples and current API before adopting either. For a team choosing a standard logger, error handling and compatibility with existing code deserve more attention than alphabetical position.

The 19 packages installed in our sandbox belong to the Awesome Go checkout. They aren't a count of everything in the catalog, and they say nothing about the dependency cost of a database driver you discover there. Likewise, the successful build covers this repository. It gives no evidence that every linked project compiles for your operating system or behaves correctly under your workload.

An October 13 push and recent pull requests show ongoing maintenance

The last push was October 13, 2026. GitHub's API reported 188,290 stars and 67 open issues and PRs on October 14. Recent activity included project additions and a closed change to require maintainer approval for automatic README merges. The recent pull requests show work on the selection process as well as the entries. Stars alone would tell us much less.

GitHub's latest-release endpoint returned no release. For this directory, the recent push and submission activity are better evidence of upkeep than a missing release record. The failed 369-second test step still matters to contributors who need a repeatable local check before sending changes. Continued maintenance and a green sandbox suite are separate questions, and this repository gave us different answers to them.

Use package documentation for API decisions and GoBooks for learning

Pkg.go.dev is the better next stop when you've narrowed the search to a module and need its package documentation. Its source lives in golang/pkgsite. Dariubs' GoBooks organizes books for learning Go, which suits someone seeking sustained instruction. Uhub's awesome-go provides another categorized project list when you want a differently organized browsing route. These alternatives solve different parts of choosing or learning.

Awesome Go earns a bookmark when you can evaluate the projects it surfaces. Our sandbox's 4 passing and 3 failing results put a limit on recommending its contributor tooling without further checking, but they don't prevent reading the list. Pick a category that matches your immediate task, then take the promising candidate's current API documentation and maintenance record into the decision before adding it to go.mod.

Alternatives

ProjectWhat it isPick it when
Pkg.go.devThe Go package discovery and documentation website, plus its documentation server source.pick this instead when you know a module name and need its current API documentation.
GoBooksA collection of Go books organized for beginners and more experienced developers.pick this instead when learning the language through a book matters more than finding a library.
Uhub Awesome GoAnother categorized directory of Go frameworks, libraries, and software.pick this instead when its learning, tooling, and application categories match how you want to browse.

Sources

  1. Awesome Go repository and README
  2. Awesome Go directory website
  3. Awesome Go contribution and maintenance guidelines
  4. Current static-site generator and optional metadata configuration
  5. Require maintainer approval for automatic README merges
  6. Pkg.go.dev source and purpose
  7. GoBooks reading collection
  8. Uhub Awesome Go categories

More dev tools reviews

git-cliff · blackbird · czkawka · controller-runtime · openchoreo · terraform-provider-azurerm · the whole board →