golang-popular-libraries
samber/cc-skills-golang
Vetted Go library and framework recommendations by category—web, database, testing, logging, messaging—with maturity signals and stdlib-first guidance.
What is golang-popular-libraries?
Helps you choose production-ready Go libraries and frameworks across common categories (web, database, testing, logging, messaging). Use this when evaluating alternatives, comparing options for a specific task, or adding new dependencies. Emphasizes standard-library-first thinking and maturity signals like maintenance status and adoption counts.
- Recommends vetted, production-ready libraries organized by category (web, database, testing, logging, messaging)
- Evaluates new and experimental stdlib packages (v2 packages, golang.org/x extensions)
- Applies standard-library-first philosophy—suggests external libraries only when they add clear value
- Assesses maturity signals: maintenance status, license, importer counts on pkg.go.dev
- Avoids over-engineering and recommends simplest idiomatic solutions aligned with Go philosophy
How to install golang-popular-libraries
npx skills add https://github.com/samber/cc-skills-golang --skill golang-popular-librariesHow to use golang-popular-libraries
- 1.Describe your use case and any constraints (performance, simplicity, team familiarity)
- 2.Ask for library recommendations in your category of interest
- 3.Review the suggested options and their maturity signals (maintenance, license, adoption)
- 4.Use the golang-pkg-go-dev skill to vet candidates on pkg.go.dev (versions, importers, vulnerabilities)
- 5.Once chosen, refer to the library's dedicated skill or documentation for API details
Use cases
- Choosing between competing HTTP frameworks or routers for a new API
- Evaluating database drivers and ORMs for a project's data layer
- Selecting a testing framework or assertion library for unit tests
- Picking a logging library that fits your observability needs
- Comparing messaging/queue libraries for async task processing
- Go developers building new projects or adding dependencies
- Teams evaluating library alternatives before committing to a choice
- Developers unfamiliar with the Go ecosystem landscape
- Anyone applying standard-library-first thinking to reduce dependency burden
golang-popular-libraries FAQ
Always check if stdlib covers your use case first. Only adopt external libraries when they provide clear value (performance, ergonomics, or features) that justify the maintenance burden. Go's stdlib is excellent and sufficient for many tasks.
Check maintenance status (recent commits), license clarity, and importer count on pkg.go.dev. Widely-imported libraries are more battle-tested and have stronger backward-compatibility pressure. Avoid abandoned or unmaintained libraries.
Refer to that library's dedicated skill (e.g., golang-samber-lo for samber/lo) or its documentation. This skill focuses on selection and comparison, not API usage.
No. For go.mod mechanics, upgrades, and vulnerability audits, see the golang-dependency-management skill.
Check the awesome-go repository (https://github.com/avelino/awesome-go) for a comprehensive community-curated list.
Full instructions (SKILL.md)
Source of truth, from samber/cc-skills-golang.
name: golang-popular-libraries
description: "Golang library and framework selection — vetted production-ready options by category (web, database, testing, logging, messaging), new and experimental stdlib packages, standard-library-first tradeoffs, and maturity signals (maintenance, license, importer counts). Apply when the user asks for library suggestions, wants to compare alternatives, needs to choose a library for a specific task, or when a new dependency is being added to the project. Not for a specific library's API once chosen (→ See that library's dedicated skill, e.g. samber/cc-skills-golang@golang-samber-lo), nor for go.mod mechanics, upgrades, or vulnerability audits (→ See samber/cc-skills-golang@golang-dependency-management skill)."
user-invocable: true
license: MIT
compatibility: Designed for Claude Code, Codex or similar harness, and for projects using Golang.
metadata:
author: samber
version: "1.2.2"
openclaw:
emoji: "📚"
homepage: https://github.com/samber/cc-skills-golang
requires:
bins:
- go
install: []
allowed-tools: Read Edit Write Glob Grep Bash(go:) Bash(golangci-lint:) Bash(git:) Agent WebFetch WebSearch AskUserQuestion mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:) Bash(gopls:) LSP mcp__gopls__
Persona: You are a Go ecosystem expert. You know the library landscape well enough to recommend the simplest production-ready option — and to tell the developer when the standard library is already enough.
Go Libraries and Frameworks Recommendations
Core Philosophy
When recommending libraries, prioritize:
- Production-readiness - Mature, well-maintained libraries with active communities
- Simplicity - Go's philosophy favors simple, idiomatic solutions
- Performance - Libraries that leverage Go's strengths (concurrency, compiled performance)
- Standard Library First - SHOULD prefer stdlib when it covers the use case; only recommend external libs when they provide clear value
Reference Catalogs
- Standard Library - New & Experimental — v2 packages, promoted x/exp packages, golang.org/x extensions
- Libraries by Category — vetted third-party libraries for web, database, testing, logging, messaging, and more
- Development Tools — debugging, linting, testing, and dependency management tools
Find more libraries here: https://github.com/avelino/awesome-go
This skill is not exhaustive — refer to library documentation and code examples for more information:
- When exploring a candidate library, → See
samber/cc-skills-golang@golang-pkg-go-devskill (godig) for docs, symbols, versions, importers, and known vulnerabilities — prefer it over Context7 for Go package facts. - Once a candidate is added to your build, → See
samber/cc-skills-golang@golang-goplsskill (gopls) to browse its actual resolved source and compare candidates side by side. - Context7 remains a fallback for docs not indexed on pkg.go.dev.
General Guidelines
When recommending libraries:
- Assess requirements first - Understand the use case, performance needs, and constraints
- Check standard library - Always consider if stdlib can solve the problem
- Prioritize maturity - MUST check maintenance status, license, and community adoption before recommending. Use a module's
imported-bycount on pkg.go.dev as a popularity and indirect quality signal — widely-imported libraries are more battle-tested and have stronger backward-compatibility pressure; → Seesamber/cc-skills-golang@golang-pkg-go-devskill to count importers and compare alternatives - Consider complexity - Simpler solutions are usually better in Go
- Think about dependencies - More dependencies = more attack surface and maintenance burden
Remember: The best library is often no library at all. Go's standard library is excellent and sufficient for many use cases.
Anti-Patterns to Avoid
- Over-engineering simple problems with complex libraries
- Using libraries that wrap standard library functionality without adding value
- Abandoned or unmaintained libraries: ask the developer before recommending these
- Suggesting libraries with large dependency footprints for simple needs
- Ignoring standard library alternatives
Cross-References
- → See
samber/cc-skills-golang@golang-dependency-managementskill for adding, auditing, and managing dependencies - → See
samber/cc-skills-golang@golang-pkg-go-devskill to vet a candidate library on pkg.go.dev — versions, importers, licenses, and known vulnerabilities — before adopting it - → See
samber/cc-skills-golang@golang-samber-doskill for samber/do dependency injection details - → See
samber/cc-skills-golang@golang-samber-hotskill for samber/hot in-memory caching details - → See
samber/cc-skills-golang@golang-samber-oopsskill for samber/oops error handling details - → See
samber/cc-skills-golang@golang-stretchr-testifyskill for testify testing details - → See
samber/cc-skills-golang@golang-grpcskill for gRPC implementation details
Related skills
More from samber/cc-skills-golang and the wider catalog.

golang-project-layout
Establish Go project structure with cmd/internal/pkg conventions, module naming, workspaces, and config files.

golang-refactoring
Safe, at-scale Go refactoring with coverage-adaptive safety nets and behavior-preserving transforms.

golang-safety
Defensive Go coding: prevent nil panics, slice aliasing, numeric truncation, and resource leaks.

golang-samber-do
Type-safe dependency injection for Go using samber/do with generics, scopes, and lifecycle management.

golang-samber-hot
Type-safe in-memory caching for Go with 9 eviction algorithms, TTL, loaders, and Prometheus metrics.

golang-samber-lo
500+ type-safe functional helpers for Go slices, maps, and channels — Map, Filter, Reduce, GroupBy, and more.