Jason Buberel | f7f7d18 | 2015-08-21 16:44:01 -0700 | [diff] [blame] | 1 | Welcome to the Go wiki, a collection of information about the [Go Programming Language](https://golang.org/). [Awesome Go](http://awesome-go.com/) is another great resource for Go programmers, curated by the Go community. |
adg | 87f483a | 2014-12-09 16:42:53 -0800 | [diff] [blame] | 2 | |
Edwan Vi | 09bf383 | 2017-04-01 14:36:28 -0400 | [diff] [blame] | 3 | ## Contributing ## |
Jason Buberel | 3bf56bc | 2015-11-14 14:11:48 -0800 | [diff] [blame] | 4 | |
| 5 | * This wiki is open to editing by any member of the Go community with a Github account. |
| 6 | * If you would like to add a new page, please first open an issue in the [Go issue tracker](https://github.com/golang/go/issues) with the prefix 'wiki' to propose the addition. Clearly state why the content does not fit into any of the existing pages. |
| 7 | * Because renaming of pages in the wiki can break external links, please open an issue before renaming or removing any wiki page. |
| 8 | |
| 9 | |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 10 | Table of Contents |
| 11 | ================= |
adg | 87f483a | 2014-12-09 16:42:53 -0800 | [diff] [blame] | 12 | |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 13 | + [Getting started with Go](#getting-started-with-go) |
| 14 | + [Working with Go](#working-with-go) |
| 15 | + [Learning more about Go](#learning-more-about-go) |
| 16 | + [The Go Community](#the-go-community) |
| 17 | + [Using the go toolchain](#using-the-go-toolchain) |
| 18 | + [Additional Go Programming Wikis](#additional-go-programming-wikis) |
Jacob Hayes | e244fd1 | 2015-09-24 17:55:52 -0500 | [diff] [blame] | 19 | + [Online Services that work with Go](#online-services-that-work-with-go) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 20 | + [Troubleshooting Go Programs in Production](#troubleshooting-go-programs-in-production) |
| 21 | + [Contributing to the Go Project](#contributing-to-the-go-project) |
| 22 | + [Platform Specific Information](#platform-specific-information) |
| 23 | + [Release Specific Information](#release-specific-information) |
Mikio Hara | 196115f | 2016-10-08 12:34:41 +0900 | [diff] [blame] | 24 | + [Questions](Questions) |
adg | 87f483a | 2014-12-09 16:42:53 -0800 | [diff] [blame] | 25 | |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 26 | ## Getting started with Go |
| 27 | |
| 28 | - [The Go Tour](http://tour.golang.org) is the best place to start. |
| 29 | - [Effective Go](https://golang.org/doc/effective_go.html) will help you learn how to write idiomatic Go code. |
| 30 | - [Go standard library documentation](https://golang.org/pkg/) to familiarize yourself with the standard library. |
| 31 | - [Use the Go Playground](http://play.golang.org) to test out Go programs in your browser. |
Jason Buberel | 7e6cbc3 | 2015-08-30 08:32:46 -0700 | [diff] [blame] | 32 | - Still not convinced? Check out this list of [Go Users](GoUsers) and a few of their [Success stories](SuccessStories). We've also assembled a long list of reasons [why you should give Go a try](whygo). |
Suraj Patil | b0b8c37 | 2016-11-28 12:26:08 +0530 | [diff] [blame] | 33 | - Read about the companies which have [switched from other languages to Go](https://github.com/golang/go/wiki/FromXToGo). |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 34 | |
| 35 | ## Working with Go |
| 36 | |
| 37 | Ready to write some Go code of your own? Here are a few links to help you get started. |
| 38 | |
| 39 | - Install and Setup your Environment |
| 40 | - Start here: [Official Installation Documentation](https://golang.org/doc/install) |
Jason Buberel | 0e6e3cd | 2015-09-11 17:35:30 -0700 | [diff] [blame] | 41 | - If you prefer to install from source, [read this first](https://golang.org/doc/install/source). |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 42 | - [InstallFromSource](InstallFromSource) - Additional tips on source installs. |
Jason Buberel | 0e6e3cd | 2015-09-11 17:35:30 -0700 | [diff] [blame] | 43 | - Windows user? [Install and configure Go, Git and Atom for Windows](https://github.com/abourget/getting-started-with-golang) |
Jason Buberel | 042985a | 2015-09-12 14:14:00 -0700 | [diff] [blame] | 44 | - Mac user? [How I start - Go](https://howistart.org/posts/go/1) - A step-by-step guide to installing Go and building your first web service. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 45 | - Having installation problems? [InstallTroubleShooting](InstallTroubleShooting) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 46 | - Make sure you have your [$GOPATH environment variable set correctly](https://golang.org/doc/install/source#gopath) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 47 | - If you need additional tips on using [$GOPATH, go here](GOPATH). |
| 48 | - [MultipleGoRoots](MultipleGoRoots) - More advanced information on working with multiple go installations and the `$GOROOT` variable. |
| 49 | - [Go IDEs and Editors](IDEsAndTextEditorPlugins) - Information on how to use your favorite editor with Go. |
Jason Buberel | 042985a | 2015-09-12 14:14:00 -0700 | [diff] [blame] | 50 | - [Tools for working with Go code](CodeTools) - Formatting, linting, vetting, refactoring, navigation and visualization. |
Jason Buberel | 945d31c | 2015-10-03 08:54:20 -0700 | [diff] [blame] | 51 | - Finding Go Libraries and Packages |
Jason Buberel | d18c5ad | 2015-09-02 08:49:51 -0700 | [diff] [blame] | 52 | - Start here: [Go open source projects](Projects). |
| 53 | - Search for Go packages: [godoc.org](http://godoc.org) |
Jason Buberel | 945d31c | 2015-10-03 08:54:20 -0700 | [diff] [blame] | 54 | - Visualization of the [Go open source package graph](https://anvaka.github.io/pm/#/galaxy/gosearch?l=1) |
Jason Buberel | 4944c9d | 2015-10-27 22:58:52 -0700 | [diff] [blame] | 55 | - [Managing your dependencies](PackageManagementTools) - An overview of the tools you can use to manage third-party packages (vendoring). |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 56 | - Publishing Go Packages as Open Source |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 57 | - Getting ready to publish your package? [Start here.](PackagePublishing) |
Jason Buberel | 016aaf8 | 2015-08-23 15:51:34 -0700 | [diff] [blame] | 58 | - [The Go Checklist](https://github.com/matttproud/gochecklist) - A comprehensive guide for publishing a project. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 59 | - [How to layout your GitHub repo](GithubCodeLayout) to make it easy to for other Go programmers to use with the `go get` command. |
Jason Buberel | 4e8bd43 | 2015-08-23 17:58:11 -0700 | [diff] [blame] | 60 | - [Go Package, Go](https://johnsto.co.uk/blog/go-package-go) - A few recommendations for making Go packages easy to use. |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 61 | |
| 62 | ## Learning more about Go |
| 63 | |
Jason Buberel | cc8e0f0 | 2015-08-29 08:40:48 -0700 | [diff] [blame] | 64 | Once you have an overview of the language, here are resources you can use to learn more. |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 65 | |
Jason Buberel | 6c3bd9e | 2015-08-23 11:04:43 -0700 | [diff] [blame] | 66 | - [Learning Go](Learn) - A collection of resources for learning Go - beginner to advanced. |
Jason Buberel | cc33383 | 2015-09-01 17:51:56 -0700 | [diff] [blame] | 67 | - [Best Practices for a New Go Developer](https://medium.com/@IndianGuru/best-practices-for-a-new-go-developer-8660384302fc) - Insights from Go community members. |
Jason Buberel | 8025271 | 2015-08-29 14:27:11 -0700 | [diff] [blame] | 68 | - [Server programming](LearnServerProgramming) - Building web, mobile, and API servers. |
Jason Buberel | 6c3bd9e | 2015-08-23 11:04:43 -0700 | [diff] [blame] | 69 | - [More on concurrency](LearnConcurrency) |
Guillaume Laforge | cb00bf3 | 2015-08-24 06:11:38 +0200 | [diff] [blame] | 70 | - [More on error handling](LearnErrorHandling) |
Jason Buberel | 6c3bd9e | 2015-08-23 11:04:43 -0700 | [diff] [blame] | 71 | - [More on testing](LearnTesting) |
Jason Buberel | 22f71b6 | 2015-08-29 15:10:51 -0700 | [diff] [blame] | 72 | - [More on mobile - Android and iOS](Mobile) |
Jason Buberel | bfc0f3f | 2015-08-23 11:06:00 -0700 | [diff] [blame] | 73 | - [Books](Books) - A list of Go books that have been published (ebook, paper) |
Jason Buberel | 4ef6268 | 2015-09-05 14:05:06 -0700 | [diff] [blame] | 74 | - [Blogs](Blogs) - Blogs about Go |
| 75 | - [Podcasts](Podcasts) - Podcasts and episodes featuring Go |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 76 | - Videos, Talks and Presentations |
Jason Buberel | f7f7d18 | 2015-08-21 16:44:01 -0700 | [diff] [blame] | 77 | - [GopherVids](http://gophervids.appspot.com/) is a searchable index of videos about Go. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 78 | - [GoTalks](GoTalks) - A collection of talks from Go conferences and meetups. |
| 79 | - [Screencasts](Screencasts) |
Jason Buberel | bfc0f3f | 2015-08-23 11:06:00 -0700 | [diff] [blame] | 80 | - [Articles](Articles) - A collection of articles to help you learn more about Go. |
Jason Buberel | 8ccafcd | 2015-08-28 10:52:53 -0700 | [diff] [blame] | 81 | - [Training](Training) - Free and commercial, online and classroom training for Go. |
Jason Buberel | 7e6cbc3 | 2015-08-30 08:32:46 -0700 | [diff] [blame] | 82 | - [University Courses](Courses) - A list of CS programs and classes using Go. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 83 | - [Resources for non-English speakers](NonEnglish) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 84 | |
| 85 | ## The Go Community |
| 86 | |
Jason Buberel | 016aaf8 | 2015-08-23 15:51:34 -0700 | [diff] [blame] | 87 | Here are some of the places where you can find Gophers online. To get a sense of what it means to be a member of the Go community, read [Damian Gryski's keynote from the GolankUK 2015 conference](https://medium.com/@dgryski/the-go-community-f0d00e3a19e) or watch [Andrew Gerrand's closing keynote from GopherCon 2015](https://www.youtube.com/watch?v=0ht89TxZZnk). |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 88 | |
Jason Buberel | b67fb58 | 2015-09-28 09:02:38 -0700 | [diff] [blame] | 89 | |
| 90 | - Where Gophers hangout online: |
| 91 | - [The Go Forum](https://forum.golangbridge.org/) - An all-purpose discussion forum for the Go community. |
| 92 | - [Gophers Slack Channel](http://gophers.slack.com/) - For real-time chat ([request membership](http://blog.gopheracademy.com/gophers-slack-community/)). |
Kenny | 609ebc2 | 2015-10-16 17:36:26 +0100 | [diff] [blame] | 93 | - [Golang News](http://golangnews.com) - For curated links about Go Programming. |
Jason Buberel | b67fb58 | 2015-09-28 09:02:38 -0700 | [diff] [blame] | 94 | - There is also a [/r/golang](http://reddit.com/r/golang) sub-reddit. |
| 95 | - On Twitter, follow the [@golang](https://twitter.com/golang) account and keep tabs on the [#golang](https://twitter.com/search?q=%23golang&src=typd) hashtag. |
| 96 | - We've also got a landing page on [Stack Overflow](http://stackoverflow.com/tags/go) for Go Q&A. |
varyoo | c6917fd | 2017-03-15 21:41:52 +0100 | [diff] [blame] | 97 | - Matrix enthusiasts are invited to join [#Go:matrix.org](https://riot.im/app/#/room/#Go:matrix.org). |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 98 | - Mailing Lists |
| 99 | - The mailing list for Go users is [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - very high traffic. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 100 | - Before you post, [check to see if it's already been answered](http://stackoverflow.com/tags/go), then read [these tips on how to ask a good question](HowToAsk) |
Jason Buberel | 7e6cbc3 | 2015-08-30 08:32:46 -0700 | [diff] [blame] | 101 | - For discussions about the core Go open source project, join [golang-dev](https://groups.google.com/forum/#!forum/golang-dev). |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 102 | - To get just our release announcements, join [golang-announce](https://groups.google.com/forum/#!forum/golang-announce) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 103 | - User Groups & Meetups - There are [Go Meetups in many cities](http://www.meetup.com/find/?allMeetups=false&keywords=golang&radius=Infinity&userFreeform=Sunnyvale%2C+CA&mcId=z94086&mcName=Sunnyvale%2C+CA&sort=recommended&eventFilter=mysugg) |
Carlisia Campos | 88996ac | 2015-11-07 14:29:12 -0800 | [diff] [blame] | 104 | - [GoBridge](http://golangbridge.org) - Volunteers helping underrepresented communities to teach technical skills and to foster diversity in Go. |
Jason Buberel | 3037774 | 2015-09-19 10:28:53 -0700 | [diff] [blame] | 105 | - [Women Who Go](http://www.womenwhogo.org/) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 106 | - See here for [additional information GoUserGroups](GoUserGroups) |
Jason Buberel | 0f8396c | 2015-08-22 12:59:19 -0700 | [diff] [blame] | 107 | - [Conferences](Conferences) - A list of upcoming and past Go conferences and major events. |
Carlisia Campos | 2802cbf | 2015-10-21 09:34:03 -0700 | [diff] [blame] | 108 | - [Companies using Go](GoUsers) - A comprehensive list of companies using Go throughout the world. |
Jason Buberel | 7e6cbc3 | 2015-08-30 08:32:46 -0700 | [diff] [blame] | 109 | - Learn more about the [Go Gopher images](Gopher) by Renee French. |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 110 | |
| 111 | ## Using the go toolchain |
| 112 | |
| 113 | - Start with the standard documentation for the `go` command [available here](https://golang.org/cmd/go/) |
Jaana B. Dogan | 6285aea | 2017-02-02 14:52:54 -0800 | [diff] [blame] | 114 | - Start here for to learn about [vendoring](https://golang.org/cmd/go/#hdr-Vendor_Directories). |
| 115 | - See also [PackageManagementTools](PackageManagementTools) for package management tools. |
| 116 | - [Cross Compilation](https://rakyll.org/cross-compilation/) |
Jason Buberel | 8b389db | 2015-08-23 10:01:04 -0700 | [diff] [blame] | 117 | - Shared libraries and Go (buildmode) |
Jason Buberel | 34c728b | 2015-08-26 12:17:27 -0700 | [diff] [blame] | 118 | - [Go Shared Libraries](https://github.com/jbuberel/buildmodeshared) - Examples for creating and using shared libraries from Go and Python. |
Jaana B. Dogan | 6285aea | 2017-02-02 14:52:54 -0800 | [diff] [blame] | 119 | - [Sharing Go Packages with C](http://blog.ralch.com/tutorial/golang-sharing-libraries/) - by [@ralch](https://twitter.com/ralch). |
Jason Buberel | 34c728b | 2015-08-26 12:17:27 -0700 | [diff] [blame] | 120 | - [Calling Go libraries from Python](https://blog.filippo.io/building-python-modules-with-go-1-5/) - by Filippo Valsorda |
| 121 | - [Calling Go libraries from Ruby](http://c7.se/go-and-ruby-ffi/) - by Peter Hellberg |
Jaana B. Dogan | 6285aea | 2017-02-02 14:52:54 -0800 | [diff] [blame] | 122 | - [Calling Go libraries from Swift](https://rakyll.org/swift/) - by Jaana Burcu Dogan |
Jason Buberel | 0e6e3cd | 2015-09-11 17:35:30 -0700 | [diff] [blame] | 123 | - [Build a Ruby Gem with a Go native extension](http://blog.paracode.com/2015/08/28/ruby-and-go-sitting-in-a-tree) - by @jondot |
Jaana B. Dogan | 6285aea | 2017-02-02 14:52:54 -0800 | [diff] [blame] | 124 | - [gohttplib](https://github.com/shazow/gohttplib) - An experiment in using Go 1.5 buildmode=c-shared. |
Jason Buberel | f9bec16 | 2015-08-23 08:23:38 -0700 | [diff] [blame] | 125 | - See the wikis below for additional details: |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 126 | - [GoGetTools](GoGetTools) |
| 127 | - [GoGetProxyConfig](GoGetProxyConfig) |
| 128 | - [cgo](cgo) |
| 129 | - [CompilerOptimizations](CompilerOptimizations) |
| 130 | - [GccgoCrossCompilation](GccgoCrossCompilation) |
| 131 | - [GcToolchainTricks](GcToolchainTricks) |
| 132 | - [GoGenerateTools](GoGenerateTools) |
Jaana B. Dogan | 6285aea | 2017-02-02 14:52:54 -0800 | [diff] [blame] | 133 | - [Go Tooling Essentials](https://rakyll.org/go-tool-flags/) - by Jaana Burcu Dogan |
| 134 | |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 135 | ## Additional Go Programming Wikis |
Jason Buberel | da85589 | 2015-08-22 15:15:20 -0700 | [diff] [blame] | 136 | |
Jason Buberel | 6f73052 | 2015-08-22 15:18:54 -0700 | [diff] [blame] | 137 | - [Why Go doesn't Support Generics: A Summary of Go Generics Discussions](https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/preview) - Start here before you join the debate. |
Jason Buberel | da85589 | 2015-08-22 15:15:20 -0700 | [diff] [blame] | 138 | - Concurrency |
| 139 | - [Timeouts](Timeouts) - Abandon async calls that take too long |
| 140 | - [LockOSThread](LockOSThread) |
| 141 | - [MutexOrChannel](MutexOrChannel) - When to use one vs the other |
| 142 | - [RaceDetector](RaceDetector) - How to detect and fix race conditions |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 143 | - Working with Databases |
Jason Buberel | e6f9045 | 2015-08-24 06:47:16 -0700 | [diff] [blame] | 144 | - [database/sql](http://go-database-sql.org/) - Online tutorial for working with the database/sql package. |
Jason Buberel | 88fe84a | 2015-08-30 12:53:00 -0700 | [diff] [blame] | 145 | - [TUGTBDDAwG](https://vividcortex.com/resources/building-database-driven-apps-with-go/) - Guide to building data driven apps. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 146 | - [SQLDrivers](SQLDrivers) |
| 147 | - [SQLInterface](SQLInterface) |
Jason Buberel | ca3d201 | 2015-08-25 07:30:52 -0700 | [diff] [blame] | 148 | - From other languages |
| 149 | - [Go for Java Programmers](https://www.nada.kth.se/~snilsson/go_for_java_programmers/) |
| 150 | - [Go for C++ Programmers](GoForCPPProgrammers) |
Jason Buberel | 88fe84a | 2015-08-30 12:53:00 -0700 | [diff] [blame] | 151 | - Strings |
| 152 | - [GoStrings](GoStrings) |
| 153 | - [String Matching](http://blog.gopheracademy.com/advent-2014/string-matching/) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 154 | - [Comments](Comments) |
| 155 | - [CommonMistakes](CommonMistakes) |
| 156 | - [Errors](Errors) |
| 157 | - [GcToolchainTricks](GcToolchainTricks) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 158 | - [Hashing](Hashing) |
| 159 | - [HttpFetch](HttpFetch) |
| 160 | - [HttpStaticFiles](HttpStaticFiles) |
| 161 | - [InterfaceSlice](InterfaceSlice) |
| 162 | - [Iota](Iota) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 163 | - [MethodSets](MethodSets) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 164 | - [PanicAndRecover](PanicAndRecover) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 165 | - [Range](Range) |
| 166 | - [RateLimiting](RateLimiting) |
| 167 | - [Rationales](Rationales) |
| 168 | - [SendingMail](SendingMail) |
| 169 | - [SignalHandling](SignalHandling) |
| 170 | - [SimultaneousAssignment](SimultaneousAssignment) |
| 171 | - [SliceTricks](SliceTricks) |
| 172 | - [Switch](Switch) |
| 173 | - [TableDrivenTests](TableDrivenTests) |
Jason Buberel | 0e6e3cd | 2015-09-11 17:35:30 -0700 | [diff] [blame] | 174 | |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 175 | |
Joe Tsai | 3b7561d | 2015-09-01 10:43:20 -0700 | [diff] [blame] | 176 | ## Online Services that work with Go |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 177 | |
| 178 | If you're looking for services that support Go, here's a list to get you started. |
| 179 | |
| 180 | - Cloud Computing - Go is well supported on most cloud service providers. |
Joe Tsai | 3b7561d | 2015-09-01 10:43:20 -0700 | [diff] [blame] | 181 | - [Amazon Web Services](https://github.com/aws/aws-sdk-go) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 182 | - [Azure](https://github.com/Azure/azure-sdk-for-go) |
| 183 | - [Digital Ocean](https://github.com/digitalocean/godo) |
Qiang Li | 3b2f2be | 2017-03-07 13:08:17 -0800 | [diff] [blame] | 184 | - [GE Predix](https://github.com/geaviation/goboot-starter) |
Jason Buberel | c51292c | 2015-10-03 08:17:33 -0700 | [diff] [blame] | 185 | - [Google Cloud Platform for Go](https://cloud.google.com/go) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 186 | - [Heroku](https://github.com/heroku/heroku-buildpack-go) |
Jason Buberel | 3151dab | 2015-10-29 21:06:25 -0700 | [diff] [blame] | 187 | - [IBM Bluemix](https://developer.ibm.com/bluemix/2015/10/28/getting-started-with-golang-on-bluemix/) |
Jason Buberel | 6f9df14 | 2015-11-01 17:16:01 -0800 | [diff] [blame] | 188 | - [OpenStack](https://github.com/openstack/golang-client) |
Bogdan Kurnosov | 3344a4e | 2016-08-08 14:36:27 +0400 | [diff] [blame] | 189 | - [Vscale](https://github.com/vscale/go-vscale) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 190 | - See here for [information on additional providers](ProviderIntegration) |
Joe Tsai | 1fe608f | 2015-09-01 10:29:48 -0700 | [diff] [blame] | 191 | - [Continuous Integration and Continuous Deployment](HostedContinuousIntegration) - Go is well supported by most CI/CD frameworks |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 192 | - Monitoring/Logging |
| 193 | - [DeferPanic](http://deferpanic.com) - Dedicated Go application performance monitoring. |
Jason Buberel | 37f37f5 | 2015-10-23 17:52:09 -0700 | [diff] [blame] | 194 | - [OpsDash](https://www.opsdash.com/) - Go-based cluster monitoring platform. |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 195 | - Package and Dependency Management |
| 196 | - [Gopkg.in](http://labix.org/gopkg.in) is a source for stable Go libraries, provided by Gustavo Niemeyer. |
Jason Buberel | d1c6b89 | 2015-08-22 08:23:39 -0700 | [diff] [blame] | 197 | - [Stable Lib](https://stablelib.com/) is a service that provides stable Go packages with long-term support. |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 198 | |
| 199 | ## Troubleshooting Go Programs in Production |
| 200 | |
Matt Skone | 960bf64 | 2015-12-04 10:52:28 -0800 | [diff] [blame] | 201 | - Understand the performance of your Go apps using the [pprof package](http://blog.golang.org/profiling-go-programs) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 202 | - Heap Dumps |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 203 | - [heapdump13](heapdump13) |
| 204 | - [heapdump14](heapdump14) |
dongfang qu | 2f980ae | 2016-09-10 10:05:43 +0800 | [diff] [blame] | 205 | - [heapdump15](https://github.com/golang/go/wiki/heapdump15) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 206 | |
| 207 | ## Contributing to the Go Project |
| 208 | |
| 209 | - Start by reading the [Go Contribution Guidelines](https://golang.org/doc/contribute.html) |
| 210 | - If you'd like to propose a change to the Go project, start by reading the [Go Change Proposal Process](https://github.com/golang/proposal) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 211 | - An archive of [design documents is also available](DesignDocuments) |
| 212 | - Go releases happen on ~6 month intervals. [See here for more information](Go-Release-Cycle) |
| 213 | - Want to know more about how the [Go source sub-repositories are structured?](SubRepositories) |
Jason Buberel | 0e6e3cd | 2015-09-11 17:35:30 -0700 | [diff] [blame] | 214 | - The Go project requires that all code be reviewed before it is submitted. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 215 | - Read more about our [code review practices](CodeReview) |
| 216 | - If you're commenting on code under review, please read [these guidelines](CodeReviewComments) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 217 | - Issues |
Joe Tsai | 3b7561d | 2015-09-01 10:43:20 -0700 | [diff] [blame] | 218 | - Bug reports and feature requests should be filed using the [GitHub issue tracker](https://github.com/golang/go/issues) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 219 | - Want to understand how we [handle issues that are reported?](HandlingIssues) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 220 | - Project Dashboards |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 221 | - [Go Builds Dashboard info](DashboardBuilders) |
| 222 | - [Performance Dashboard info](PerfDashboard) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 223 | |
| 224 | ## Platform Specific Information |
| 225 | |
Minux Ma | 2d0452c | 2016-09-23 18:51:49 -0400 | [diff] [blame] | 226 | - See [MinimumRequirements](MinimumRequirements) for minimum platform requirements of current Go ports. |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 227 | - Considering porting Go to a new platform? [Read our porting policy first](PortingPolicy) |
| 228 | - [Mobile](Mobile) |
| 229 | - [Ubuntu](Ubuntu) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 230 | - Windows |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 231 | - [WindowsBuild](WindowsBuild) |
| 232 | - [WindowsCrossCompiling](WindowsCrossCompiling) |
| 233 | - [WindowsDLLs](WindowsDLLs) |
| 234 | - [WindowsSupport](WindowsSupport) |
| 235 | - [GoArm](GoArm) |
| 236 | - [ChromeOS](ChromeOS) |
Mikio Hara | 31133da | 2016-09-29 16:22:12 +0900 | [diff] [blame] | 237 | - [Darwin](Darwin) |
Mikio Hara | 79f9d73 | 2017-04-06 16:38:39 +0900 | [diff] [blame] | 238 | - [DragonFly BSD](DragonFly-BSD) |
Mikio Hara | 3a581da | 2016-09-29 13:54:26 +0900 | [diff] [blame] | 239 | - [FreeBSD](FreeBSD) |
Mikio Hara | 7024365 | 2016-10-30 11:08:06 +0900 | [diff] [blame] | 240 | - [Linux](Linux) |
Mikio Hara | 3a581da | 2016-09-29 13:54:26 +0900 | [diff] [blame] | 241 | - [NativeClient](NativeClient) |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 242 | - [NetBSD](NetBSD) |
| 243 | - [OpenBSD](OpenBSD) |
Mikio Hara | dd8a759 | 2016-10-07 11:21:31 +0900 | [diff] [blame] | 244 | - [Plan 9](Plan9) |
Mikio Hara | 3a581da | 2016-09-29 13:54:26 +0900 | [diff] [blame] | 245 | - [Solaris](Solaris) |
Jason Buberel | 4636970 | 2015-08-21 13:21:29 -0700 | [diff] [blame] | 246 | |
| 247 | ## Release Specific Information |
| 248 | |
Jason Buberel | 775f3d2 | 2015-08-21 13:34:00 -0700 | [diff] [blame] | 249 | - [Go1point1Gotchas](Go1point1Gotchas) |
| 250 | - [OlderVersions](OlderVersions) |
minux | 27be244 | 2014-12-11 00:03:02 -0800 | [diff] [blame] | 251 | |
| 252 | Notes: |
| 253 | |
Ihor Dvoretskyi | e2e47d1 | 2015-11-01 09:17:08 +0200 | [diff] [blame] | 254 | - Please refrain from changing the title of the wiki pages, as some of them might be linked to from [golang.org](https://golang.org) or other websites. |