Skip to content

Instantly share code, notes, and snippets.

@stephenwithav
Last active February 22, 2020 14:37
Show Gist options
  • Save stephenwithav/a688d06c2d937ff8748d73226848601c to your computer and use it in GitHub Desktop.
Save stephenwithav/a688d06c2d937ff8748d73226848601c to your computer and use it in GitHub Desktop.
Create a markdown file with links to every public interface defined in the Go 1.x stdlib.
git clone https://github.com/golang/go
cd go/src
wget https://gist.github.com/stephenwithav/a688d06c2d937ff8748d73226848601c/raw/e7d9a16084ccfd4bf10f854c81cf21e51d655d5d/build.sh
grep -r 'type [A-Z][[:alnum:]]* interface {' | grep -v _test | grep \.go | grep -v golden | grep -v vendor | cut -d '{' -f 1 | sed 's/[[:alnum:]._]*:/:/' | sort | sed 's/\([^:]*\):\s*type \([[:alnum:]]*\) interface/\1[\2](https:\/\/pkg.go.dev\/\1#\2)\n/' > ~/gointerfaces.md
cd ../..
rm -rf go

cmd/api/testdata/src/issue21181/dep/Interface

cmd/api/testdata/src/pkg/p1/Error

cmd/api/testdata/src/pkg/p1/I

cmd/api/testdata/src/pkg/p1/Namer

cmd/api/testdata/src/pkg/p1/Private

cmd/api/testdata/src/pkg/p1/Public

cmd/api/testdata/src/pkg/p2/Twoer

cmd/asm/internal/lex/TokenReader

cmd/compile/internal/gc/BoolFlag

cmd/compile/internal/gc/CountFlag

cmd/compile/internal/ssa/Frontend

cmd/compile/internal/ssa/GCNode

cmd/compile/internal/ssa/Location

cmd/compile/internal/ssa/Logger

cmd/compile/internal/syntax/Node

cmd/doc/testdata/ExportedInterface

cmd/go/internal/load/ImportPathError

cmd/go/internal/lockedfile/internal/filelock/File

cmd/go/internal/modfetch/codehost/Repo

cmd/go/internal/modfetch/Repo

cmd/go/internal/mvs/Reqs

cmd/go/testdata/mod/golang.org_x_text_v0.0.0-20170915032832-Matcher

cmd/go/testdata/mod/Matcher

cmd/go/testdata/script/Defined

cmd/internal/dwarf/Context

cmd/internal/dwarf/Sym

cmd/internal/objfile/Liner

cmd/internal/objfile/RelocStringer

cmd/pack/FileLike

compress/flate/Reader

compress/flate/Resetter

compress/zlib/Resetter

container/heap/Interface

context/Context

crypto/cipher/AEAD

crypto/cipher/Block

crypto/cipher/BlockMode

crypto/cipher/Stream

crypto/elliptic/Curve

crypto/tls/ClientSessionCache

crypto/Decrypter

crypto/Signer

crypto/SignerOpts

database/sql/driver/ColumnConverter

database/sql/driver/ConnBeginTx

database/sql/driver/Connector

database/sql/driver/Conn

database/sql/driver/ConnPrepareContext

database/sql/driver/DriverContext

database/sql/driver/Driver

database/sql/driver/ExecerContext

database/sql/driver/Execer

database/sql/driver/NamedValueChecker

database/sql/driver/Pinger

database/sql/driver/QueryerContext

database/sql/driver/Queryer

database/sql/driver/Result

database/sql/driver/RowsColumnTypeDatabaseTypeName

database/sql/driver/RowsColumnTypeLength

database/sql/driver/RowsColumnTypeNullable

database/sql/driver/RowsColumnTypePrecisionScale

database/sql/driver/RowsColumnTypeScanType

database/sql/driver/Rows

database/sql/driver/RowsNextResultSet

database/sql/driver/SessionResetter

database/sql/driver/StmtExecContext

database/sql/driver/Stmt

database/sql/driver/StmtQueryContext

database/sql/driver/Tx

database/sql/driver/ValueConverter

database/sql/driver/Valuer

database/sql/Result

database/sql/Scanner

debug/dwarf/Type

debug/macho/Load

encoding/binary/ByteOrder

encoding/gob/GobDecoder

encoding/gob/GobEncoder

encoding/json/Marshaler

encoding/json/Unmarshaler

encoding/BinaryMarshaler

encoding/BinaryUnmarshaler

encoding/TextMarshaler

encoding/TextUnmarshaler

encoding/xml/MarshalerAttr

encoding/xml/Marshaler

encoding/xml/TokenReader

encoding/xml/UnmarshalerAttr

encoding/xml/Unmarshaler

expvar/Var

flag/Getter

flag/Value

fmt/Formatter

fmt/GoStringer

fmt/Scanner

fmt/ScanState

fmt/State

fmt/Stringer

go/ast/Decl

go/ast/Expr

go/ast/Node

go/ast/Stmt

go/ast/Visitor

go/constant/Value

go/doc/testdata/I0

go/doc/testdata/I0

go/internal/gcimporter/testdata/E

go/internal/gcimporter/testdata/T

go/types/ImporterFrom

go/types/Importer

go/types/Object

go/types/Sizes

go/types/: // type T interface go/types/Type

hash/Hash32

hash/Hash64

hash/Hash

image/color/Color

image/color/Model

image/draw/Drawer

image/draw/Image

image/draw/Quantizer

image/jpeg/Reader

image/png/EncoderBufferPool

image/Image

image/PalettedImage

internal/reflectlite/Type

internal/testlog/Interface

io/ByteReader

io/ByteScanner

io/ByteWriter

io/Closer

io/ReadCloser

io/ReaderAt

io/ReaderFrom

io/Reader

io/ReadSeeker

io/ReadWriteCloser

io/ReadWriter

io/ReadWriteSeeker

io/RuneReader

io/RuneScanner

io/Seeker

io/StringWriter

io/WriteCloser

io/WriterAt

io/Writer

io/WriterTo

io/WriteSeeker

math/rand/Source64

math/rand/Source

mime/multipart/File

net/http/cookiejar/PublicSuffixList

net/http/httputil/BufferPool

net/http/CloseNotifier

net/http/CookieJar

net/http/File

net/http/FileSystem

net/http/Flusher

net/http/Handler

net/http/Hijacker

net/http/I

net/http/Pusher

net/http/ResponseWriter

net/http/RoundTripper

net/rpc/ClientCodec

net/rpc/ServerCodec

net/smtp/Auth

net/Addr

net/Conn

net/Error

net/Listener

net/PacketConn

os/FileInfo

os/Signal

reflect/Type

runtime/Error

sort/Interface

sync/Locker

syscall/js/Wrapper

syscall/Conn

syscall/RawConn

syscall/RoutingMessage

syscall/Sockaddr

syscall/Sockaddr

syscall/Sockaddr

testing/quick/Generator

testing/TB

text/template/parse/Node

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment