Conversion target survey · go2cs
Ranked by how many other modules directly require them, from a full crawl of the
Go module graph — then graded for whether a Go→C# transpiler can actually chew on them. The Go
standard library is absent by construction: stdlib packages never appear in a go.mod.
// indirect excluded
source scan module zips from proxy.golang.org, 2026-08-28
golang.org/x modules — so x/crypto, x/net, x/sys
and x/text already exist under src/core/vendor. Only the vendored subset, though:
8 of 56 packages, 7 of 44, 1 of 14 and 4 of 63 respectively. Rows carry a
go2cs n/N badge with the exact count.Start here. No cgo, no assembly, under ~20k lines, six or fewer direct dependencies.
Fully transpilable, but big surface area or heavy reflection/unsafe. Good stress tests.
Assembly with no pure-Go fallback, or //go:linkname into the runtime. Wants hand-written .NET shims, not transpilation.
Core files import "C" with no build-tag escape. Not transpilable as-is.
Hover or focus a module path for its description, stars, license and a link to the repository — the module name itself opens the repository in a new tab. Hover a share bar for its raw counts. Click any column heading to sort.
| # | Module | Dependents | Share of importers | Tier | kLOC | Deps | Signals |
|---|---|---|---|---|---|---|---|
| 1 | github.com/stretchr/testify — A toolkit with common assertions and mocks that plays nicely with the standard library v1.12.1 · go 1.17 | 346,205 | 29.04% | A | 14.4 | 2 | reflect×10 |
| 2 | github.com/google/uuid — Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services v1.6.0 · go — | 146,611 | 12.30% | A | 1.3 | 0 | |
| 3 | github.com/spf13/cobra — A Commander for modern Go CLI interactions v1.10.2 · go 1.15 | 137,951 | 11.57% | A | 6.9 | 4 | |
| 4 | golang.org/x/crypto x — Go supplementary cryptography libraries Already in go2cs: 8 of 56 packages — the subset the Go standard library vendors, converted under src/core/vendor. v0.55.0 · go 1.25.0 | 133,882 | 11.23% | B | 45.1 | 3 | go2cs 8/56asm×15 |
| 5 | google.golang.org/grpc — The Go language implementation of gRPC. HTTP/2 based RPC v1.83.2 · go 1.25.0 | 131,298 | 11.01% | B | 123.4 | 24 | reflect×34generics×5 |
| 6 | google.golang.org/protobuf — Go support for Google's protocol buffers v1.36.12 · go 1.23 | 114,088 | 9.57% | B | 281.0 | 2 | reflect×154 |
| 7 | github.com/pkg/errors — Simple error handling primitives v0.9.1 · go — | 109,156 | 9.15% | A | 0.5 | 0 | |
| 8 | github.com/sirupsen/logrus — Structured, pluggable logging for Go v1.10.2 · go 1.23 | 96,502 | 8.09% | A | 3.4 | 2 | |
| 9 | golang.org/x/net x — Go supplementary network libraries Already in go2cs: 7 of 44 packages — the subset the Go standard library vendors, converted under src/core/vendor. v0.58.0 · go 1.25.0 | 94,915 | 7.96% | C | 94.8 | 4 | go2cs 7/44cgo·gatedasm×6linkname×4generics×7 |
| 10 | github.com/spf13/viper — Go configuration with fangs v1.21.0 · go 1.23.0 | 89,030 | 7.47% | B | 3.2 | 10 | |
| 11 | github.com/gin-gonic/gin — Gin is a high-performance HTTP web framework written in Go. It provides a Martini-like API but with significantly better performance—up to 40 times faster—thanks… v1.12.0 · go 1.25.0 | 87,344 | 7.33% | B | 7.8 | 15 | |
| 12 | go.uber.org/zap — Blazing fast, structured, leveled logging in Go v1.28.0 · go 1.19 | 78,065 | 6.55% | A | 9.3 | 4 | |
| 13 | gopkg.in/yaml.v3 — YAML support for the Go language v3.0.1 · go — | 70,816 | 5.94% | A | 11.3 | 0 | |
| 14 | github.com/prometheus/client_golang — Prometheus instrumentation library for Go applications v1.24.1 · go 1.25.0 | 70,524 | 5.91% | B | 17.7 | 12 | cgo·gated |
| 15 | k8s.io/apimachinery — Generic API machinery — schemes, serialization and shared types for Kubernetes v0.37.0 · go 1.26.0 | 67,827 | 5.69% | B | 72.6 | 20 | reflect×41generics×28 |
| 16 | golang.org/x/sync x — concurrency primitives v0.22.0 · go 1.25.0 | 65,143 | 5.46% | A | 0.6 | 0 | |
| 17 | github.com/joho/godotenv — A Go port of Ruby's dotenv library (Loads environment variables from .env files) v1.5.1 · go 1.12 | 63,668 | 5.34% | A | 0.6 | 0 | |
| 18 | github.com/golang/protobuf — Go support for Google's protocol buffers v1.5.4 · go 1.17 | 63,567 | 5.33% | A | 16.3 | 2 | reflect×14 |
| 19 | github.com/gorilla/mux — Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with v1.8.1 · go 1.20 | 62,308 | 5.23% | A | 2.2 | 0 | |
| 20 | golang.org/x/sys x — Go packages for low-level interaction with the operating system Already in go2cs: 1 of 14 packages — the subset the Go standard library vendors, converted under src/core/vendor. v0.47.0 · go 1.25.0 | 61,998 | 5.20% | C | 235.7 | 0 | go2cs 1/14cgo·gatedasm×44linkname×17unsafe |
| 21 | k8s.io/client-go — Go client for Kubernetes v0.37.0 · go 1.26.0 | 60,488 | 5.07% | B | 278.2 | 26 | reflect×24generics×19 |
| 22 | gopkg.in/yaml.v2 — YAML support for the Go language v2.4.0 · go 1.15 | 60,421 | 5.07% | A | 9.6 | 1 | |
| 23 | github.com/lib/pq — Go PostgreSQL driver for database/sql v1.12.3 · go 1.21 | 58,657 | 4.92% | A | 10.5 | 0 | |
| 24 | github.com/gorilla/websocket — Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go v1.5.3 · go 1.12 | 56,912 | 4.77% | A | 4.7 | 0 | |
| 25 | k8s.io/api — The canonical location of the Kubernetes API definition v0.37.0 · go 1.26.0 | 55,201 | 4.63% | B | 437.2 | 2 | reflect×60 |
| 26 | gorm.io/gorm — The fantastic ORM library for Golang, aims to be developer friendly v1.31.2 · go 1.18 | 54,420 | 4.56% | A | 15.5 | 3 | reflect×30 |
| 27 | github.com/google/go-cmp — Package for comparing Go values in tests v0.7.0 · go 1.21 | 53,071 | 4.45% | A | 6.6 | 0 | reflect×17 |
| 28 | github.com/spf13/pflag — Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags v1.0.10 · go 1.12 | 50,345 | 4.22% | A | 6.3 | 0 | |
| 29 | golang.org/x/text x — Go text processing support Already in go2cs: 4 of 63 packages — the subset the Go standard library vendors, converted under src/core/vendor. v0.41.0 · go 1.25.0 | 47,490 | 3.98% | B | 540.7 | 1 | go2cs 4/63cgo·gatedreflect×18 |
| 30 | golang.org/x/oauth2 x — provides support for making OAuth2 authorized and authenticated HTTP requests, as specified in RFC 6749 v0.36.0 · go 1.25.0 | 46,878 | 3.93% | A | 6.6 | 1 | |
| 31 | github.com/go-sql-driver/mysql — Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package v1.10.0 · go 1.24.0 | 43,731 | 3.67% | A | 6.6 | 1 | |
| 32 | github.com/onsi/gomega — Ginkgo's Preferred Matcher Library v1.43.0 · go 1.25.0 | 38,035 | 3.19% | A | 13.6 | 4 | reflect×45 |
| 33 | golang.org/x/exp x — Experimental and deprecated packages v0.0.0-20260824195058-e88cd73687aa · go 1.26.0 | 36,381 | 3.05% | B | 24.7 | 4 | cgo·gatedlinkname×1generics×8 |
| 34 | github.com/fatih/color — Color package for Go (golang) v1.19.0 · go 1.25.0 | 35,400 | 2.97% | A | 0.9 | 3 | |
| 35 | github.com/fsnotify/fsnotify — Cross-platform filesystem notifications for Go v1.10.1 · go 1.23 | 33,669 | 2.82% | B | 4.5 | 1 | |
| 36 | golang.org/x/tools x — Go tooling: gopls, static analysis passes and AST/type utilities v0.49.0 · go 1.25.0 | 32,716 | 2.74% | C | 155.5 | 6 | linkname×4reflect×45generics×58 |
| 37 | go.opentelemetry.io/otel — OpenTelemetry Go API and SDK v1.46.0 · go 1.25.0 | 32,250 | 2.70% | B | 794.4 | 8 | reflect×14 |
| 38 | github.com/rs/zerolog — Zero Allocation JSON Logger v1.35.1 · go 1.23 | 32,182 | 2.70% | A | 8.7 | 4 | |
| 39 | go.mongodb.org/mongo-driver — The Official Golang driver for MongoDB v1.17.9 · go 1.18 | 30,325 | 2.54% | B | 93.6 | 10 | cgo·gatedreflect×38 |
| 40 | github.com/go-playground/validator/v10 — Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving v10.30.3 · go 1.25.0 | 29,707 | 2.49% | B | 40.7 | 7 | reflect×32 |
| 41 | sigs.k8s.io/controller-runtime — Repo for the controller-runtime subproject of kubebuilder (sig-apimachinery) v0.24.1 · go 1.26.0 | 29,258 | 2.45% | B | 31.8 | 26 | reflect×16generics×24 |
| 42 | golang.org/x/time x — Go supplementary time packages v0.15.0 · go 1.25.0 | 29,098 | 2.44% | A | 0.5 | 0 | |
| 43 | github.com/mattn/go-sqlite3 — sqlite3 driver for go using database/sql v1.14.50 · go 1.21 | 28,679 | 2.41% | D | 6.7 | 0 | cgounsafe |
| 44 | google.golang.org/api — Auto-generated Google APIs for Go v0.294.0 · go 1.25.0 | 28,428 | 2.38% | B | 6067.5 | 18 | |
| 45 | github.com/golang/mock — GoMock is a mocking framework for the Go programming language v1.6.0 · go 1.11 | 27,754 | 2.33% | A | 5.3 | 2 | reflect×25 |
| 46 | github.com/aws/aws-sdk-go — AWS SDK for Go v1 — end-of-support, superseded by aws-sdk-go-v2 v1.55.8 · go 1.19 | 27,723 | 2.33% | B | 5935.0 | 1 | reflect×30 |
| 47 | go.opentelemetry.io/otel/trace — OpenTelemetry Go API and SDK v1.46.0 · go 1.25.0 | 26,889 | 2.26% | A | 4.1 | 3 | |
| 48 | github.com/BurntSushi/toml — TOML parser for Golang with reflection v1.6.0 · go 1.18 | 26,023 | 2.18% | A | 5.8 | 0 | |
| 49 | golang.org/x/term x — Go terminal and console support v0.45.0 · go 1.25.0 | 25,963 | 2.18% | A | 1.4 | 1 | |
| 50 | github.com/davecgh/go-spew — Implements a deep pretty printer for Go data structures to aid in debugging v1.1.1 · go — | 25,948 | 2.18% | A | 2.1 | 0 | |
| 51 | github.com/golang-jwt/jwt/v5 — Go implementation of JSON Web Tokens (JWT) v5.3.1 · go 1.21 | 24,365 | 2.04% | A | 2.8 | 0 | |
| 52 | gorm.io/driver/postgres — GORM PostgreSQL driver v1.6.2 · go 1.25.0 | 24,269 | 2.04% | A | 1.3 | 2 | |
| 53 | github.com/jackc/pgx/v5 — PostgreSQL driver and toolkit for Go v5.10.0 · go 1.25.0 | 23,676 | 1.99% | B | 39.0 | 6 | reflect×13generics×8 |
| 54 | github.com/aws/aws-sdk-go-v2 — AWS SDK for the Go programming language v1.45.1 · go 1.24 | 23,210 | 1.95% | A | 12.6 | 1 | |
| 55 | github.com/urfave/cli/v2 — A declarative, simple, fast, and fun package for building command line tools in Go v2.27.7 · go 1.18 | 23,077 | 1.94% | A | 9.8 | 4 | |
| 56 | github.com/go-chi/chi/v5 — lightweight, idiomatic and composable router for building Go HTTP services v5.3.2 · go 1.23 | 23,068 | 1.93% | A | 4.4 | 0 | |
| 57 | go.opentelemetry.io/otel/sdk — OpenTelemetry Go API and SDK v1.46.0 · go 1.25.0 | 22,605 | 1.90% | B | 6.7 | 10 | |
| 58 | github.com/gogo/protobuf — [Deprecated] Protocol Buffers for Go with Gadgets v1.3.2 · go 1.15 | 22,341 | 1.87% | B | 448.4 | 0 | reflect×93 |
| 59 | sigs.k8s.io/yaml — A better way to marshal and unmarshal YAML in Golang v1.6.0 · go 1.22 | 22,127 | 1.86% | A | 2.2 | 4 | |
| 60 | github.com/json-iterator/go — A high-performance 100% compatible drop-in replacement of "encoding/json" v1.1.12 · go 1.12 | 22,105 | 1.85% | B | 9.8 | 5 | unsafereflect×11 |
| 61 | github.com/aws/aws-sdk-go-v2/config — AWS SDK for the Go programming language v1.33.1 · go 1.24 | 21,818 | 1.83% | B | 7.3 | 8 | |
| 62 | github.com/redis/go-redis/v9 — Redis client for Go v9.22.0 · go 1.24 | 21,512 | 1.80% | B | 61.8 | 6 | |
| 63 | github.com/dgrijalva/jwt-go — Archived JWT implementation, succeeded by golang-jwt/jwt v3.2.0+incompatible · go — | 20,971 | 1.76% | A | 1.8 | 0 | |
| 64 | gorm.io/driver/mysql — GORM MySQL driver v1.6.0 · go 1.18 | 20,825 | 1.75% | A | 1.1 | 2 | |
| 65 | google.golang.org/genproto — Generated code for Google Cloud client libraries v0.0.0-20260825221802-da73d73af1c5 · go 1.25.0 | 20,323 | 1.70% | B | 856.0 | 25 | reflect×674 |
| 66 | k8s.io/utils — Non-Kubernetes-specific utility libraries which are consumed by multiple projects v0.0.0-20260707023825-cf1189d6abe3 · go 1.25 | 20,249 | 1.70% | A | 9.5 | 2 | generics×5 |
| 67 | github.com/mitchellh/mapstructure — Go library for decoding generic map values into native Go structures and vice versa v1.5.0 · go 1.14 | 20,194 | 1.69% | A | 1.9 | 0 | |
| 68 | github.com/jmoiron/sqlx — general purpose extensions to golang's database/sql v1.4.0 · go 1.10 | 20,185 | 1.69% | A | 3.0 | 3 | |
| 69 | github.com/labstack/echo/v4 — High performance, minimalist Go web framework v4.15.4 · go 1.25.0 | 19,770 | 1.66% | A | 11.0 | 6 | |
| 70 | github.com/mitchellh/go-homedir — Go library for detecting and expanding the user's home directory without cgo v1.1.0 · go — | 19,244 | 1.61% | A | 0.2 | 0 | |
| 71 | github.com/onsi/ginkgo/v2 — A Modern Testing Framework for Go v2.32.1 · go 1.25.0 | 18,983 | 1.59% | B | 22.5 | 10 | generics×6 |
| 72 | github.com/go-logr/logr — A simple logging interface for Go v1.4.4 · go 1.18 | 18,558 | 1.56% | A | 3.0 | 0 | |
| 73 | k8s.io/klog/v2 — Leveled execution logs for Go, forked from golang/glog v2.140.0 · go 1.21 | 17,939 | 1.50% | A | 7.6 | 1 | |
| 74 | github.com/miekg/dns — Full-featured DNS library in Go v1.1.73 · go 1.25.0 | 17,767 | 1.49% | B | 22.3 | 3 | |
| 75 | github.com/charmbracelet/lipgloss — Style definitions for nice terminal layouts v1.1.0 · go 1.18 | 17,554 | 1.47% | A | 5.9 | 6 | |
| 76 | github.com/prometheus/common — Go libraries shared across Prometheus components and libraries v0.70.1 · go 1.25.0 | 17,169 | 1.44% | B | 9.1 | 13 | |
| 77 | github.com/go-redis/redis/v8 — Redis client for Go — v8 line, superseded by redis/go-redis v9 v8.11.5 · go 1.17 | 17,158 | 1.44% | A | 15.6 | 4 | |
| 78 | github.com/docker/docker — The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems v28.5.2+incompatible · go — | 16,920 | 1.42% | D | 197.3 | 0 | cgoasm×1reflect×17 |
| 79 | github.com/ethereum/go-ethereum — Go implementation of the Ethereum protocol v1.17.5 · go 1.24.0 | 16,546 | 1.39% | B | 266.5 | 79 | cgo·gatedasm×8linkname×1reflect×56generics×21 |
| 80 | github.com/mattn/go-isatty — Reports whether a file descriptor refers to a terminal v0.0.24 · go 1.20 | 16,480 | 1.38% | A | 0.2 | 1 | |
| 81 | github.com/swaggo/swag — Automatically generate RESTful API documentation with Swagger 2.0 for Go v1.16.6 · go 1.18 | 16,377 | 1.37% | B | 8.3 | 7 | |
| 82 | github.com/olekukonko/tablewriter — ASCII table in golang v1.1.4 · go 1.21 | 16,330 | 1.37% | B | 16.4 | 7 | |
| 83 | github.com/spf13/cast — safe and easy casting from one type to another in Go v1.10.0 · go 1.21.0 | 16,258 | 1.36% | A | 1.7 | 1 | |
| 84 | gopkg.in/natefinch/lumberjack.v2 — lumberjack is a log rolling package for Go v2.2.1 · go 1.13 | 16,234 | 1.36% | A | 0.6 | 0 | |
| 85 | github.com/charmbracelet/bubbletea — A powerful little TUI framework v1.3.10 · go 1.24.0 | 15,960 | 1.34% | B | 4.8 | 8 | |
| 86 | github.com/rs/cors — Go net/http configurable handler to handle CORS requests v1.11.1 · go 1.13 | 15,765 | 1.32% | A | 0.7 | 0 | |
| 87 | github.com/onsi/ginkgo — A Modern Testing Framework for Go v1.16.5 · go 1.16 | 15,413 | 1.29% | A | 12.2 | 5 | |
| 88 | github.com/golang-jwt/jwt/v4 — Go implementation of JSON Web Tokens (JWT) v4.5.2 · go 1.16 | 15,328 | 1.29% | A | 2.6 | 0 | |
| 89 | github.com/gofiber/fiber/v2 — Express inspired web framework written in Go v2.52.15 · go 1.20 | 15,210 | 1.28% | B | 41.0 | 8 | cgo·gatedunsafereflect×26 |
| 90 | github.com/klauspost/compress — Optimized Go Compression Packages v1.19.2 · go 1.24 | 15,187 | 1.27% | B | 48.7 | 0 | asm×13 |
| 91 | github.com/tidwall/gjson — Get JSON values quickly - JSON parser for Go v1.19.0 · go 1.23 | 14,751 | 1.24% | B | 3.6 | 2 | unsafe |
| 92 | github.com/ghodss/yaml — A better way to marshal and unmarshal YAML in Golang v1.0.0 · go — | 14,737 | 1.24% | A | 0.8 | 0 | |
| 93 | github.com/gorilla/handlers — Package gorilla/handlers is a collection of useful middleware for Go HTTP services & web applications v1.5.2 · go 1.20 | 14,580 | 1.22% | A | 1.2 | 1 | |
| 94 | github.com/jinzhu/gorm — GORM v1 — superseded by gorm.io/gorm (v2) v1.9.16 · go 1.12 | 14,516 | 1.22% | B | 7.0 | 7 | reflect×17 |
| 95 | golang.org/x/image x — Go supplementary image libraries v0.45.0 · go 1.25.0 | 14,045 | 1.18% | C | 164.5 | 2 | asm×1 |
| 96 | modernc.org/sqlite — Package sqlite is a CGo-free port of SQLite/SQLite3. SQLite is an in-process implementation of a self-contained, serverless, zero-configuration, transactional… v1.57.0 · go 1.25.0 | 13,829 | 1.16% | B | 1590.3 | 5 | unsafereflect×24 |
| 97 | go.uber.org/goleak — Goroutine leak detector v1.3.0 · go 1.20 | 13,673 | 1.15% | A | 0.8 | 1 | |
| 98 | github.com/dustin/go-humanize — Go Humans! (formatters for units to human friendly sizes) v1.0.1 · go 1.16 | 13,657 | 1.15% | A | 1.1 | 0 | |
| 99 | github.com/PuerkitoBio/goquery — jQuery-style HTML document traversal and manipulation v1.13.0 · go 1.25.0 | 13,653 | 1.15% | A | 2.8 | 2 | |
| 100 | github.com/prometheus/client_model — Generated protocol buffer data model for Prometheus metrics v0.6.2 · go 1.22.0 | 13,597 | 1.14% | A | 1.4 | 1 |
Major-version suffixes and submodules folded together, so
aws-sdk-go-v2's 384 service modules and OpenTelemetry's 36 count once. Useful when the conversion
unit is a repository rather than a module path.
| # | Repository | Summed dependents | Share | Modules |
|---|---|---|---|---|
| 1 | github.com/stretchr/testify | 346,205 | 29.04% | 1 |
| 2 | go.opentelemetry.io/otel | 147,800 | 12.40% | 36 |
| 3 | github.com/google/uuid | 146,611 | 12.30% | 1 |
| 4 | github.com/spf13/cobra | 137,951 | 11.57% | 1 |
| 5 | google.golang.org/grpc | 135,349 | 11.35% | 7 |
| 6 | golang.org/x/crypto | 134,353 | 11.27% | 2 |
| 7 | gopkg.in/yaml | 131,572 | 11.03% | 3 |
| 8 | github.com/aws/aws-sdk-go-v2 | 131,468 | 11.03% | 384 |
| 9 | google.golang.org/protobuf | 114,097 | 9.57% | 3 |
| 10 | github.com/pkg/errors | 109,156 | 9.15% | 1 |
| 11 | github.com/sirupsen/logrus | 96,502 | 8.09% | 1 |
| 12 | golang.org/x/net | 94,915 | 7.96% | 1 |
| 13 | github.com/spf13/viper | 89,119 | 7.47% | 2 |
| 14 | github.com/gin-gonic/gin | 87,344 | 7.33% | 1 |
| 15 | go.uber.org/zap | 78,558 | 6.59% | 2 |
| 16 | github.com/prometheus/client_golang | 70,585 | 5.92% | 2 |
| 17 | go.opentelemetry.io/collector | 69,283 | 5.81% | 100 |
| 18 | k8s.io/apimachinery | 67,827 | 5.69% | 1 |
| 19 | golang.org/x/sync | 65,143 | 5.46% | 1 |
| 20 | github.com/joho/godotenv | 63,668 | 5.34% | 1 |
| 21 | github.com/golang/protobuf | 63,567 | 5.33% | 1 |
| 22 | github.com/gorilla/mux | 62,308 | 5.23% | 1 |
| 23 | golang.org/x/sys | 61,998 | 5.20% | 1 |
| 24 | github.com/open-telemetry/opentelemetry-collector-contrib | 61,189 | 5.13% | 355 |
| 25 | k8s.io/client-go | 60,488 | 5.07% | 1 |
| 26 | gorm.io/driver | 59,814 | 5.02% | 8 |
| 27 | github.com/lib/pq | 58,657 | 4.92% | 1 |
| 28 | github.com/gorilla/websocket | 56,912 | 4.77% | 1 |
| 29 | k8s.io/api | 55,201 | 4.63% | 1 |
| 30 | gorm.io/gorm | 54,420 | 4.56% | 1 |
| 31 | github.com/google/go-cmp | 53,071 | 4.45% | 1 |
| 32 | github.com/spf13/pflag | 50,345 | 4.22% | 1 |
| 33 | github.com/golang-jwt/jwt | 50,238 | 4.21% | 3 |
| 34 | golang.org/x/text | 47,490 | 3.98% | 1 |
| 35 | golang.org/x/oauth2 | 46,878 | 3.93% | 1 |
| 36 | github.com/go-sql-driver/mysql | 43,731 | 3.67% | 1 |
| 37 | cloud.google.com/go | 41,603 | 3.49% | 156 |
| 38 | github.com/onsi/gomega | 38,035 | 3.19% | 1 |
| 39 | github.com/urfave/cli | 37,280 | 3.13% | 3 |
| 40 | google.golang.org/genproto | 37,034 | 3.11% | 5 |
The shape-of-go project crawled index.golang.org for every module version published since
April 2019, fetched each module's latest go.mod from proxy.golang.org, and parsed
the require directives into a directed graph. This page reads that project's exported
search.json — no part of the crawl was re-run.
Edges are direct requires only. Requires marked // indirect are excluded, so a count
reflects modules that deliberately chose the dependency, not transitive pull-through.
Each module's latest release zip was downloaded and statically scanned. Counts exclude
_test.go files and anything under testdata/, vendor/, or a
_-prefixed directory — the same paths the Go toolchain ignores.
A cgo flag is only a blocker when an import "C" file would compile on a plain linux or
windows build. Files behind an opt-in build tag (gssapi, journald,
icu) or a minority-OS suffix are marked cgo·gated and do not affect the
grade.
The hover text is each project's own repository description, resolved through
deps.dev and GitHub — 86 of 100 verbatim. Thirteen were rewritten
because the repository sets no description, or because the upstream text trailed off into a URL. One
(golang.org/x/oauth2) uses its package doc comment.
Star counts are a rough popularity cross-check only. They disagree sharply with dependent counts for the
golang.org/x mirrors, which almost nobody stars and almost everybody imports.
Coverage was read from go2cs/src/core/vendor, which mirrors the Go standard library's
own src/vendor/golang.org/x tree. Converted package directories were matched against the
full package list of each published module, so the counts are subset-of-module, not subset-of-vendor.
Nothing else in the top 100 is converted: src/core/vendor is the only third-party tree
in the repository. The four marked modules stay on the list because the unconverted remainder is the
overwhelming majority — x/crypto's ssh, acme, bcrypt and openpgp packages are all
still open.
Counts are per module path. yaml.v2 and yaml.v3 rank separately though
they are one project; the repository table above corrects for this.
A go.mod require is not an import. A module can require a dependency only one of its packages uses, and test-only dependencies count the same as production ones — which is most of why testify tops the list.
kLOC is raw line count of non-test .go files, blanks and comments included. Generated
API surface (google.golang.org/api, aws-sdk-go) inflates it enormously.