title: LearnServerProgramming
This page links to resources for learning about server programming in Go - both web services and mobile backends. The items are organized into sections by topic.
Getting Started
Middleware
A topic you will see discussed frequently is “middleware”. If you're not familiar with that term, we suggest you start out by reading a few of these articles:
Toolkits and Frameworks
Before you decide to adopt a third party web framework or toolkit, keep in mind that the Go standard library provides all of the tools you need to build a sophisticated, modern web application. Keeping with Go's preference for simplicity and composability over complexity and magic, we suggest you see how far the standard library can take you.
If you decide you need a bit more infrastructure, start by looking at some of the toolkits and libraries available.
Toolkits & Libraries & Microframeworks
Frameworks
- BeeGo Framework
- Frodo - Go mini web framework inspired by Laravel(php), Slim(php) and ExpressJS(node.js)
- GinGonic
- Macaron - Productive, modular web framework in Go.
- Revel Web Framework
- Ringo - Lightweight MVC web framework inspired by Rails, Gin.
- Utron - Lightweight MVC framework for web applications.
- Iris - Fast MVC framework for web applications.
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
Openstack / Rackspace
IBM BlueMix