Search code examples
godirectory-structure

Why can't I find any go package which follows the standard src/pkg/bin structure?


I'm a beginner in golang, and I was reading the article How to write Go code on the go website. It explains how the typical Go structure contains three folders in the root of the project:

bin/
    contains compiled code
pkg/
    contains package objects
src/
    contains the Go source files

So to learn from other projects I checked out some popular go projects in github, but to my surprise I don't see this src/pkg/bin structure in any of those projects.

What am I missing here? Does anybody know a (preferably simple) project in golang which follows this structure? I think I could learn a lot from reading other people's code.


Solution

  • The structure you reference in your question is not how projects are structured but rather how the local workspace is configured.

    https://golang.org/doc/code.html#Workspaces

    Typically, you'll set up one workspace in your local machine, for example you would set up your workspace root to be:

    $HOME/go

    You then point your GOPATH environment variable to $HOME/go to let Go know that's your workspace location.

    Inside your workspace you then create the src, bin and pkg folders that the documentation describes.

    Inside src is where you checkout (or create your own) project folders.