Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Go project directory layout
The Go project itself contains a number of subdirectories. This document will provide a brief overview, but many of these directories have individual README.md or README files that describe their purpose in detail.
api directory contains machine checkable specifications for the Go standard library, to help enforce the Go 1 compatibility promise.
bin directory contains the binaries of the project:
doc directory contains the resources served at https://golang.org/doc/
lib directory contains a single subdirectory
lib/time which contains a copy of the time zone database that Go uses if it cannot find the operating systems copy.
misc/cgo directory contains tests and examples of cgo.
misc/chrome directory contains a Chrome extension for Go contributors.
misc/git directory contains a pre-commit hook to ensure that go files have been run through gofmt.
misc/linkcheck directory contains a program for ensuring there are no missing links in the godoc website.
misc/nacl directory contains Go's integration with nacl, which is used by the Go playground.
misc/sortac directory contains a utility for sorting the
misc/swig directory contains examples of using Go with SWIG.
misc/tour directory contains the resources and source code for the Go tour.
misc/trace directory contains a generated file used by
go tool trace.
pkg directory contains platform-specific build artifacts. It will always contain the following:
pkg/tool directory contains the platform-specific tool chain exposed by the
go tool command.
src directory contains the source code for the standard library and, in
src/cmd, tool chain.
test directory contains extensive additional tests for the runtime and tool chain.