Go example projects
Find a file
Rob Findley 7f05d21786 internal/cmd/weave: print two levels of headings in TOC
Print up to two levels of headings, independent of the root depth of the
table of contents.

Change-Id: I75c07a5983b2af2639ebb9bf76e4189a7b114143
Reviewed-on: https://go-review.googlesource.com/c/example/+/703975
Auto-Submit: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-09-15 13:10:37 -07:00
appengine-hello all: update to Go license 2023-07-31 13:17:55 +00:00
gotypes weave: fix %include parsing, add highlighting 2025-05-20 11:44:41 -07:00
hello hello/reverse: add example example test 2023-08-02 21:57:33 +00:00
helloserver helloserver: implement -g flag 2023-07-31 22:03:21 +00:00
internal/cmd/weave internal/cmd/weave: print two levels of headings in TOC 2025-09-15 13:10:37 -07:00
outyet outyet: update example, make a separate module 2023-07-31 13:18:03 +00:00
ragserver ragserver-langchaingo: update to newer version of grpc 2024-09-25 20:16:53 +00:00
slog-handler-guide weave: fix %include parsing, add highlighting 2025-05-20 11:44:41 -07:00
template all: update to Go license 2023-07-31 13:17:55 +00:00
go.mod go.mod: update golang.org/x dependencies 2025-06-05 09:04:50 -07:00
go.sum go.mod: update golang.org/x dependencies 2025-06-05 09:04:50 -07:00
LICENSE LICENSE: update per Google Legal 2024-07-16 16:15:37 +00:00
PATENTS all: update to Go license 2023-07-31 13:17:55 +00:00
README.md outyet: update example, make a separate module 2023-07-31 13:18:03 +00:00

Go example projects

Go Reference

This repository contains a collection of Go programs and libraries that demonstrate the language, standard libraries, and tools.

Clone the project

$ git clone https://go.googlesource.com/example
$ cd example

https://go.googlesource.com/example is the canonical Git repository. It is mirrored at https://github.com/golang/example.

hello and hello/reverse

$ cd hello
$ go build
$ ./hello -help

A trivial "Hello, world" program that uses a library package.

The hello command covers:

  • The basic form of an executable command
  • Importing packages (from the standard library and the local repository)
  • Printing strings (fmt)
  • Command-line flags (flag)
  • Logging (log)

The reverse reverse covers:

  • The basic form of a library
  • Conversion between string and []rune
  • Table-driven unit tests (testing)

helloserver

$ cd helloserver
$ go run .

A trivial "Hello, world" web server.

Topics covered:

outyet

$ cd outyet
$ go run .

A web server that answers the question: "Is Go 1.x out yet?"

Topics covered:

  • Command-line flags (flag)
  • Web servers (net/http)
  • HTML Templates (html/template)
  • Logging (log)
  • Long-running background processes
  • Synchronizing data access between goroutines (sync)
  • Exporting server state for monitoring (expvar)
  • Unit and integration tests (testing)
  • Dependency injection
  • Time (time)

appengine-hello

A trivial "Hello, world" App Engine application intended to be used as the starting point for your own code. Please see Google App Engine SDK for Go and Quickstart for Go in the App Engine Standard Environment.

gotypes

The go/types package is a type-checker for Go programs. It is one of the most complex packages in Go's standard library, so we have provided this tutorial to help you find your bearings. It comes with several example programs that you can obtain using go get and play with as you learn to build tools that analyze or manipulate Go programs.

template

A trivial web server that demonstrates the use of the template package's block feature.

slog-handler-guide

The log/slog package supports structured logging. It features a flexible backend in the form of a Handler interface. This guide can help you write your own handler.