• Stars
    star
    104
  • Rank 320,287 (Top 7 %)
  • Language
    Go
  • License
    BSD 3-Clause "New...
  • Created over 3 years ago
  • Updated 7 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A corpus of popular Go modules

corpus

A corpus of popular Go modules. See top-100.tsv for the latest sample.

This corpus is to be used when analyzing or studying Go code. For example, when one wants to change the Go language and estimate how much existing code would need to be adapted.

For now, this repository simply contains a table with module information, including where to find the source code and what precise version was recorded. Downloading all the source code is an exercise left to the user, but will likely be provided as part of the program soon. Until then, try go get -d module-path@version in a loop.

Quickstart

Set up a github access token with the public_repo permission, and run:

export GITHUB_TOKEN=...
go run . >output.tsv

FAQ

Measuring popularity is a bit pointless.

Completely agreed. This is just an honest estimation for the purposes of research. It should not be used as a "top 100 best Go modules" leaderboard.

Can't the score be gamed?

In practice, not really. We stick to metrics which require manual work; for example, starring or forking a GitHub repository requires creating an account. You would need to fake that process tens of thousands of times, which likely goes against the site's terms of use.

This list is too GitHub-centric.

I'd love to extend it, for example with gitlab.com and any other popular code hosting sites which have useful statistics like stars/forks. If you know of any sites which qualify and are not yet in the issue tracker, please file an issue.

My project is popular yet it isn't listed.

Note that a Go project must be a Go module and mainly contain Go code in order to be matched by the code hosting site searches. The popularity score is also an estimation, not an objective metric.

If you still think there is a bug in the code, please file a bug.

More Repositories

1

sh

A shell parser, formatter, and interpreter with bash support; includes shfmt
Go
6,835
star
2

gofumpt

A stricter gofmt
Go
3,072
star
3

xurls

Extract urls from text
Go
1,158
star
4

github-actions-golang

GitHub Actions as CI for Go
Go
1,021
star
5

interfacer

A linter that suggests interface types
Go
693
star
6

unparam

Find unused parameters in Go
Go
512
star
7

gogrep

Search for Go code using syntax trees
Go
475
star
8

fdroidcl

F-Droid desktop client
Go
256
star
9

goreduce

Reduce Go programs
Go
215
star
10

bitw

Minimalist BitWarden client
Go
166
star
11

zstd

Zstandard implementation in Wuffs
C
112
star
12

dockexec

Run Go tests inside a Docker image
Go
98
star
13

accesspoint

Manage wireless access points in Android (abandoned)
Java
73
star
14

benchinit

Benchmark the init cost of Go packages
Go
72
star
15

pastecat

Pastebin service (abandoned)
Go
36
star
16

git-picked

List merged and cherry-picked branches
Go
29
star
17

winup

Automate a Windows 10 VM setup for coding and testing
Go
21
star
18

unindent

Report code that is unnecessarily indented
Go
18
star
19

android-template

Android app template
Java
16
star
20

dotfiles

Here be dragons
Shell
14
star
21

talks

Collection of slides from talks
Go
9
star
22

go-concurrency-workshop

Go
9
star
23

editorconfig

EditorConfig support in Go
Go
8
star
24

lint

Common interfaces for Go code checkers
Go
6
star
25

macfuzzer

Android MAC changer and randomizer (abandoned)
Java
6
star
26

gexf

GEXF file format implementation
Go
3
star
27

mvdan.cc

Personal website
HTML
3
star
28

playtyk

This repo is a temporary home for a hack.
Go
3
star
29

responsefile

Support for response files in Go, to bypass argument length limits
Go
2
star
30

tor

Consensus diffs Tor GSoC project
C
1
star
31

route

portable Go package to obtain simple routing information
Go
1
star
32

nowt

Nothing extraordinary here
Go
1
star
33

basedir

Platform-specific base directories
Go
1
star