This page links to resources for learning about server programming in Go. The items are organized into sections by topic.

In Go servers, each incoming request is handled in its own goroutine. These goroutines share memory by communicating. LearnConcurrency outlines a course of study of Go's concurrency model, including techniques that are useful in server programming.

Communication

Presentation

Profiling and Performance

Tracing, Monitoring, Logging, and Configuration

  • Package expvar provides a standardized interface to public variables, such as operation counters in servers.
  • Package flag implements command-line flag parsing.
  • Package log implements a simple logging package.
  • Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.

Storage

  • Package os provides a platform-independent interface to operating system functionality.
  • Package path/filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
  • Package database/sql provides a generic interface around SQL (or SQL-like) databases.

Platforms

Google Cloud Platform

Amazon Web Services

Microsoft Azure

  • Microsoft OpenTech's azure-sdk-for-go provides a Golang package that makes it easy to consume and manage Microsoft Azure Services.
  • Search packages for Azure