Go Sub-repository Packages

These packages are part of the Go Project but outside the main Go tree. They are developed under looser compatibility requirements than the Go core.

Repositories

Packages

PathSynopsis
golang.org/x/arch/arm/armasm
golang.org/x/arch/arm/armmapArmmap constructs the ARM opcode map from the instruction set CSV file.
golang.org/x/arch/arm/armspecArmspec reads the ``ARM Architecture Reference Manual'' to collect instruction encoding details and writes those details to standard output in JSON format.
golang.org/x/arch/ppc64/ppc64asmPackage ppc64asm implements decoding of 64-bit PowerPC machine code.
golang.org/x/arch/ppc64/ppc64mapppc64map constructs the ppc64 opcode map from the instruction set CSV file.
golang.org/x/arch/ppc64/ppc64specPower64spec reads the ``Power ISA V2.07'' Manual to collect instruction encoding details and writes those details to standard output in CSV format.
golang.org/x/arch/x86/x86asmPackage x86asm implements decoding of x86 machine code.
golang.org/x/arch/x86/x86mapX86map constructs the x86 opcode map from the instruction set CSV file.
golang.org/x/benchmarks/buildBuild is a benchmark that examines compiler and linker performance.
golang.org/x/benchmarks/driverPackage driver provides common benchmarking logic shared between benchmarks.
golang.org/x/benchmarks/garbageGarbage is a benchmark that stresses garbage collector.
golang.org/x/benchmarks/httpHTTP is a benchmark that examines client/​server http performance.
golang.org/x/benchmarks/jsonJSON benchmark marshals and unmarshals ~2MB json string with a tree-like object hierarchy, in 4*GOMAXPROCS goroutines.
golang.org/x/blog/blogCommand blog is a web server for the Go blog that can run on App Engine or as a stand-alone HTTP server.
golang.org/x/blog/content/context/googlePackage google provides a function to do Google searches using the Google Web Search API.
golang.org/x/blog/content/context/serverThe server program issues Google search requests and demonstrates the use of the go.net Context API.
golang.org/x/blog/content/context/useripPackage userip provides functions for extracting a user IP address from a request and associating it with a Context.
golang.org/x/blog/content/cover
golang.org/x/blog/content/h2push/serverThe server command demonstrates a server with HTTP/​2 Server Push support.
golang.org/x/blog/content/survey2016
golang.org/x/blog/support/racyThis program demonstrates a race condition.
golang.org/x/buildPackage build contains constants for the Go continuous build system.
golang.org/x/build/authPackage auth contains shared code related to OAuth2 and obtaining tokens for a project.
golang.org/x/build/buildenvPackage buildenv contains definitions for the environments the Go build system can run in.
golang.org/x/build/buildletPackage buildlet contains client tools for working with a buildlet server.
golang.org/x/build/cmd/builderGo Builder is a continuous build client for the Go project.
golang.org/x/build/cmd/buildletThe buildlet is an HTTP server that untars content to disk and runs commands it has untarred, streaming their output back over HTTP.
golang.org/x/build/cmd/buildlet/stage0The stage0 command looks up the buildlet's URL from its environment (GCE metadata service, scaleway, etc), downloads it, and runs it.
golang.org/x/build/cmd/buildstatsThe buildstats command syncs build logs from Datastore to Bigquery.
golang.org/x/build/cmd/clCL prints a list of open Go code reviews (also known as change lists, or CLs).
golang.org/x/build/cmd/coordinatorThe coordinator runs the majority of the Go build system.
golang.org/x/build/cmd/coordinator/buildongce
golang.org/x/build/cmd/docker2bootThe docker2boot command converts a Docker image into a bootable GCE VM image.
golang.org/x/build/cmd/fetchlogsFetchlogs downloads build failure logs from the Go dashboard so they can be accessed and searched from the local file system.
golang.org/x/build/cmd/genbootstrapThe genbootstrap command prepares GO_BOOTSTRAP tarballs suitable for use on builders.
golang.org/x/build/cmd/gitmirrorThe gitmirror binary watches the specified Gerrit repositories for new commits and reports them to the build dashboard.
golang.org/x/build/cmd/godashGodash generates Go dashboards about issues and CLs.
golang.org/x/build/cmd/gomoteThe gomote command is a client for the Go builder infrastructure.
golang.org/x/build/cmd/gopherbotThe gopherbot command runs Go's gopherbot role account on GitHub and Gerrit.
golang.org/x/build/cmd/makemacThe makemac command starts OS X VMs for the builders.
golang.org/x/build/cmd/perfrunperfrun interacts with the buildlet coordinator to run the go1 benchmarks on a buildlet slave for the most recent successful commits according to the build dashboard.
golang.org/x/build/cmd/pubsubhelperThe pubsubhelper is an SMTP server for Gerrit updates and an HTTP server for Github webhook updates.
golang.org/​x/​build/​cmd/​pubsubhelper/​pubsubtypesPackage pubsubtypes contains types published by pubsubhelper.
golang.org/x/build/cmd/pushbackCommand pushback is a service that monitors a set of GitHub repositories for incoming Pull Requests, replies with contribution instructions, and closes the request.
golang.org/x/build/cmd/racebuildracebuild builds the race runtime (syso files) on all supported OSes using gomote.
golang.org/x/build/cmd/releaseCommand release builds a Go release.
golang.org/x/build/cmd/retrybuildsThe retrybuilds command clears build failures from the build.golang.org dashboard to force them to be rebuilt.
golang.org/x/build/cmd/rundockerbuildletThe rundockerbuildlet command loops forever and creates and cleans up Docker containers running reverse buildlets.
golang.org/x/build/cmd/scalewayThe scaleway command creates ARM servers on Scaleway.com.
golang.org/x/build/cmd/uploadThe upload command writes a file to Google Cloud Storage.
golang.org/x/build/dashboardPackage dashboard contains shared configuration and logic used by various pieces of the Go continuous build system.
golang.org/x/build/devappPackage devapp implements a simple App Engine app for generating and serving Go project release dashboards using the godash command/​library.
golang.org/x/build/devapp/devappserver
golang.org/x/build/envutilPackage envutil provides utilities for working with environment variables.
golang.org/x/build/gerritPackage gerrit contains code to interact with Gerrit servers.
golang.org/x/build/godashPackage godash generates dashboards about issues and CLs in the Go Github and Gerrit projects.
golang.org/x/build/godash/stats
golang.org/x/build/internal/httpdlPackage httpdl downloads things from HTTP to local disk.
golang.org/x/build/internal/loghashPackage loghash provides the shared information for computing a log hash (as in https:/​/​build.golang.org/​log/​HASH).
golang.org/x/build/internal/lruPackage lru implements an LRU cache.
golang.org/x/build/internal/singleflightPackage singleflight provides a duplicate function call suppression mechanism.
golang.org/x/build/internal/untarPackage untar untars a tarball to disk.
golang.org/x/build/kubernetesPackage kubernetes contains a minimal client for the Kubernetes API.
golang.org/x/build/kubernetes/apiPackage api contains the Kubernetes v1 API types.
golang.org/x/build/kubernetes/gkePackage gke contains code for interacting with Google Container Engine (GKE), the hosted version of Kubernetes on Google Cloud Platform.
golang.org/x/build/livelogPackage livelog provides a buffer that can be simultaneously written to by one writer and read from by many readers.
golang.org/x/build/maintnerPackage maintner mirrors, searches, syncs, and serves Git, Github, and Gerrit metadata.
golang.org/x/build/maintner/godataPackage godata loads the Go project's corpus of Git, Github, and Gerrit activity.
golang.org/x/build/maintner/gostatsThe gostats command computes stats about the Go project.
golang.org/x/build/maintner/maintnerdThe maintnerd command serves project maintainer data from Git, Github, and/​or Gerrit.
golang.org/x/build/maintner/maintpbPackage maintpb is a generated protocol buffer package.
golang.org/x/build/maintner/reclogPackage reclog contains readers and writers for a record wrapper format used by maintner.
golang.org/x/build/pargzipPackage pargzip contains a parallel gzip writer implementation.
golang.org/x/build/revdialPackage revdial implements a Dialer and Listener which work together to turn an accepted connection (for instance, a Hijacked HTTP request) into a Dialer which can then create net.Conns connecting back to the original dialer, which then gets a net.Listener accepting those conns.
golang.org/x/build/tarutilPackage tarutil contains utilities for working with tar archives.
golang.org/x/build/typesPackage types contains common types used by the Go continuous build system.
golang.org/x/build/versionThe version package permits running a specific version of Go.
golang.org/x/build/version/go1.8beta1The go1.8beta1 command runs the go command from go1.8beta1.
golang.org/x/build/version/go1.8beta2The go1.8beta2 command runs the go command from go1.8beta2.
golang.org/x/build/version/go1.8rc1The go1.8rc1 command runs the go command from go1.8rc1.
golang.org/x/build/version/go1.8rc2The go1.8rc2 command runs the go command from go1.8rc2.
golang.org/x/build/version/go1.8rc3The go1.8rc3 command runs the go command from go1.8rc3.
golang.org/x/crypto/acmePackage acme provides an implementation of the Automatic Certificate Management Environment (ACME) spec.
golang.org/x/crypto/acme/autocertPackage autocert provides automatic access to certificates from Let's Encrypt and any other ACME-based CA.
golang.org/x/crypto/bcryptPackage bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
golang.org/x/crypto/blake2bPackage blake2b implements the BLAKE2b hash algorithm as defined in RFC 7693.
golang.org/x/crypto/blake2sPackage blake2s implements the BLAKE2s hash algorithm as defined in RFC 7693.
golang.org/x/crypto/blowfishPackage blowfish implements Bruce Schneier's Blowfish encryption algorithm.
golang.org/x/crypto/bn256Package bn256 implements a particular bilinear group at the 128-bit security level.
golang.org/x/crypto/cast5Package cast5 implements CAST5, as defined in RFC 2144.
golang.org/x/crypto/chacha20poly1305Package chacha20poly1305 implements the ChaCha20-Poly1305 AEAD as specified in RFC 7539.
golang.org/​x/​crypto/​chacha20poly1305/​internal/​chacha20Package ChaCha20 implements the core ChaCha20 function as specified in https:/​/​tools.ietf.org/​html/​rfc7539#section-2.3.
golang.org/x/crypto/cryptobytePackage cryptobyte implements building and parsing of byte strings for DER-encoded ASN.1 and TLS messages.
golang.org/x/crypto/curve25519Package curve25519 provides an implementation of scalar multiplication on the elliptic curve known as curve25519.
golang.org/x/crypto/ed25519Package ed25519 implements the Ed25519 signature algorithm.
golang.org/​x/​crypto/​ed25519/​internal/​edwards25519
golang.org/x/crypto/hkdfPackage hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869.
golang.org/x/crypto/md4Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
golang.org/x/crypto/nacl/boxPackage box authenticates and encrypts messages using public-key cryptography.
golang.org/x/crypto/nacl/secretboxPackage secretbox encrypts and authenticates small messages.
golang.org/x/crypto/ocspPackage ocsp parses OCSP responses as specified in RFC 2560.
golang.org/x/crypto/openpgpPackage openpgp implements high level operations on OpenPGP messages.
golang.org/x/crypto/openpgp/armorPackage armor implements OpenPGP ASCII Armor, see RFC 4880.
golang.org/x/crypto/openpgp/clearsignPackage clearsign generates and processes OpenPGP, clear-signed data.
golang.org/x/crypto/openpgp/elgamalPackage elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v.
golang.org/x/crypto/openpgp/errorsPackage errors contains common error types for the OpenPGP packages.
golang.org/x/crypto/openpgp/packetPackage packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880.
golang.org/x/crypto/openpgp/s2kPackage s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
golang.org/x/crypto/otrPackage otr implements the Off The Record protocol as specified in http:/​/​www.cypherpunks.ca/​otr/​Protocol-v2-3.1.0.html
golang.org/x/crypto/pbkdf2Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 2898 /​ PKCS #5 v2.0.
golang.org/x/crypto/pkcs12Package pkcs12 implements some of PKCS#12.
golang.org/x/crypto/pkcs12/internal/rc2Package rc2 implements the RC2 cipher
golang.org/x/crypto/poly1305Package poly1305 implements Poly1305 one-time message authentication code as specified in http:/​/​cr.yp.to/​mac/​poly1305-20050329.pdf.
golang.org/x/crypto/ripemd160Package ripemd160 implements the RIPEMD-160 hash algorithm.
golang.org/x/crypto/salsa20Package salsa20 implements the Salsa20 stream cipher as specified in http:/​/​cr.yp.to/​snuffle/​spec.pdf.
golang.org/x/crypto/salsa20/salsaPackage salsa provides low-level access to functions in the Salsa family.
golang.org/x/crypto/scryptPackage scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (http:/​/​www.tarsnap.com/​scrypt/​scrypt.pdf).
golang.org/x/crypto/sha3Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
golang.org/x/crypto/sshPackage ssh implements an SSH client and server.
golang.org/x/crypto/ssh/agentPackage agent implements the ssh-agent protocol, and provides both a client and a server.
golang.org/x/crypto/ssh/knownhostsPackage knownhosts implements a parser for the OpenSSH known_hosts host key database.
golang.org/x/crypto/ssh/terminalPackage terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
golang.org/x/crypto/ssh/testThis package contains integration tests for the golang.org/​x/​crypto/​ssh package.
golang.org/x/crypto/tea
golang.org/x/crypto/twofishPackage twofish implements Bruce Schneier's Twofish encryption algorithm.
golang.org/x/crypto/xteaPackage xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions."
golang.org/x/crypto/xtsPackage xts implements the XTS cipher mode as specified in IEEE P1619/​D16.
golang.org/x/debugPackage debug provides the portable interface to a program being debugged.
golang.org/x/debug/archPackage arch contains architecture-specific definitions.
golang.org/x/debug/dwarfPackage dwarf provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http:/​/​dwarfstd.org/​doc/​dwarf-2.0.0.pdf
golang.org/x/debug/elfPackage elf implements access to ELF object files.
golang.org/x/debug/gosymPackage gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
golang.org/x/debug/localPackage local provides access to a local program.
golang.org/x/debug/machoPackage macho implements access to Mach-O object files.
golang.org/x/debug/remotePackage remote provides remote access to a debugproxy server.
golang.org/x/debug/serverPackage server provides RPC access to a local program being debugged.
golang.org/x/debug/server/protocolPackage protocol defines the types used to represent calls to the debug server.
golang.org/x/exp/ebnfPackage ebnf is a library for EBNF grammars.
golang.org/x/exp/ebnflintEbnflint verifies that EBNF productions are consistent and grammatically correct.
golang.org/x/exp/io/i2cPackage i2c allows users to read from and write to a slave I2C device.
golang.org/x/exp/io/i2c/driverPackage driver contains interfaces to be implemented by various I2C implementations.
golang.org/x/exp/io/spiPackage spi allows users to read from and write to an SPI device.
golang.org/x/exp/io/spi/driverPackage driver contains interfaces to be implemented by various SPI implementations.
golang.org/x/exp/mmapPackage mmap provides a way to memory-map a file.
golang.org/x/exp/old/netchanPackage netchan implements type-safe networked channels: it allows the two ends of a channel to appear on different computers connected by a network.
golang.org/x/exp/shiny/driverPackage driver provides the default driver for accessing a screen.
golang.org/x/exp/shiny/driver/gldriverPackage gldriver provides an OpenGL driver for accessing a screen.
golang.org/x/exp/shiny/driver/internal/drawerPackage drawer provides functions that help implement screen.Drawer methods.
golang.org/​x/​exp/​shiny/​driver/​internal/​errscreenPackage errscreen provides a stub Screen implementation.
golang.org/x/exp/shiny/driver/internal/eventPackage event provides an infinitely buffered double-ended queue of events.
golang.org/​x/​exp/​shiny/​driver/​internal/​lifecyclerPackage lifecycler tracks a window's lifecycle state.
golang.org/​x/​exp/​shiny/​driver/​internal/​swizzlePackage swizzle provides functions for converting between RGBA pixel formats.
golang.org/x/exp/shiny/driver/internal/win32Package win32 implements a partial shiny screen driver using the Win32 API.
golang.org/x/exp/shiny/driver/internal/x11keyx11key contains X11 numeric codes for the keyboard and mouse.
golang.org/x/exp/shiny/driver/windriverPackage windriver provides the Windows driver for accessing a screen.
golang.org/x/exp/shiny/driver/x11driverPackage x11driver provides the X11 driver for accessing a screen.
golang.org/x/exp/shiny/gesturePackage gesture provides gesture events such as long presses and drags.
golang.org/x/exp/shiny/iconvgPackage iconvg implements a compact, binary format for simple vector graphics: icons, logos, glyphs and emoji.
golang.org/​x/​exp/​shiny/​iconvg/​internal/​gradientPackage gradient provides linear and radial gradient images.
golang.org/x/exp/shiny/imageutilPackage imageutil implements some image utility functions.
golang.org/​x/​exp/​shiny/​materialdesign/​colornamesPackage colornames provides named colors as defined in the Material Design style guide.
golang.org/x/exp/shiny/materialdesign/iconsPackage icons contains the Material Design icon set, in the IconVG vector graphic format.
golang.org/x/exp/shiny/screenPackage screen provides interfaces for portable two-dimensional graphics and input events.
golang.org/x/exp/shiny/textPackage text lays out paragraphs of text.
golang.org/x/exp/shiny/unitPackage unit defines units of length such as inches or pixels.
golang.org/​x/​exp/​shiny/​vendor/​github.com/​BurntSushi/​xgbPackage XGB provides the X Go Binding, which is a low-level API to communicate with the core X protocol and many of the X extensions.
golang.org/​x/​exp/​shiny/​vendor/​github.com/​BurntSushi/​xgb/​renderPackage render is the X client API for the RENDER extension.
golang.org/​x/​exp/​shiny/​vendor/​github.com/​BurntSushi/​xgb/​shmPackage shm is the X client API for the MIT-SHM extension.
golang.org/​x/​exp/​shiny/​vendor/​github.com/​BurntSushi/​xgb/​xprotoPackage xproto is the X client API for the extension.
golang.org/x/exp/shiny/widgetPackage widget provides graphical user interface widgets.
golang.org/x/exp/shiny/widget/flexPackage flex provides a container widget that lays out its children following the CSS flexbox algorithm.
golang.org/x/exp/shiny/widget/glwidgetPackage glwidget provides a widget containing a GL ES framebuffer.
golang.org/x/exp/shiny/widget/nodePackage node provides the structure for a tree of heterogenous widget nodes.
golang.org/x/exp/shiny/widget/themePackage theme provides widget themes.
golang.org/x/exp/utf8stringPackage utf8string provides an efficient way to index strings by rune rather than by byte.
golang.org/x/exp/winfsnotifyPackage winfsnotify allows the user to receive file system event notifications on Windows.
golang.org/x/image/bmpPackage bmp implements a BMP image decoder and encoder.
golang.org/x/image/colornamesPackage colornames provides named colors as defined in the SVG 1.1 spec.
golang.org/x/image/drawPackage draw provides image composition functions.
golang.org/x/image/fontPackage font defines an interface for font faces, for drawing text on an image.
golang.org/x/image/font/basicfontPackage basicfont provides fixed-size font faces.
golang.org/x/image/font/gofont/goboldPackage gobold provides the "Go Bold" TrueType font from the Go font family.
golang.org/x/image/font/gofont/gobolditalicPackage gobolditalic provides the "Go Bold Italic" TrueType font from the Go font family.
golang.org/x/image/font/gofont/goitalicPackage goitalic provides the "Go Italic" TrueType font from the Go font family.
golang.org/x/image/font/gofont/gomediumPackage gomedium provides the "Go Medium" TrueType font from the Go font family.
golang.org/x/image/font/gofont/gomediumitalicPackage gomediumitalic provides the "Go Medium Italic" TrueType font from the Go font family.
golang.org/x/image/font/gofont/gomonoPackage gomono provides the "Go Mono" TrueType font from the Go font family.
golang.org/x/image/font/gofont/gomonoboldPackage gomonobold provides the "Go Mono Bold" TrueType font from the Go font family.
golang.org/​x/​image/​font/​gofont/​gomonobolditalicPackage gomonobolditalic provides the "Go Mono Bold Italic" TrueType font from the Go font family.
golang.org/x/image/font/gofont/gomonoitalicPackage gomonoitalic provides the "Go Mono Italic" TrueType font from the Go font family.
golang.org/x/image/font/gofont/goregularPackage goregular provides the "Go Regular" TrueType font from the Go font family.
golang.org/x/image/font/gofont/gosmallcapsPackage gosmallcaps provides the "Go Smallcaps" TrueType font from the Go font family.
golang.org/​x/​image/​font/​gofont/​gosmallcapsitalicPackage gosmallcapsitalic provides the "Go Smallcaps Italic" TrueType font from the Go font family.
golang.org/x/image/font/inconsolataPackage inconsolata provides pre-rendered bitmap versions of the Inconsolata font family.
golang.org/x/image/font/plan9fontPackage plan9font implements font faces for the Plan 9 font and subfont file formats.
golang.org/x/image/font/sfntPackage sfnt implements a decoder for SFNT font file formats, including TrueType and OpenType.
golang.org/x/image/math/f32Package f32 implements float32 vector and matrix types.
golang.org/x/image/math/f64Package f64 implements float64 vector and matrix types.
golang.org/x/image/math/fixedPackage fixed implements fixed-point integer types.
golang.org/x/image/riffPackage riff implements the Resource Interchange File Format, used by media formats such as AVI, WAVE and WEBP.
golang.org/x/image/tiffPackage tiff implements a TIFF image decoder and encoder.
golang.org/x/image/tiff/lzwPackage lzw implements the Lempel-Ziv-Welch compressed data format, described in T.
golang.org/x/image/vectorPackage vector provides a rasterizer for 2-D vector graphics.
golang.org/x/image/vp8Package vp8 implements a decoder for the VP8 lossy image format.
golang.org/x/image/vp8lPackage vp8l implements a decoder for the VP8L lossless image format.
golang.org/x/image/webpPackage webp implements a decoder for WEBP images.
golang.org/x/image/webp/nycbcraPackage nycbcra provides non-alpha-premultiplied Y'CbCr-with-alpha image and color types.
golang.org/x/mobile/appPackage app lets you write portable all-Go apps for Android and iOS.
golang.org/x/mobile/app/internal/apptestPackage apptest provides utilities for testing an app.
golang.org/x/mobile/app/internal/testappSmall test app used by app/app_test.go.
golang.org/x/mobile/assetPackage asset provides access to application-bundled assets.
golang.org/x/mobile/bindPackage bind implements a code generator for gobind.
golang.org/x/mobile/bind/benchmarkPackage benchmark contains benchmarking bound functions for internal use.
golang.org/x/mobile/bind/javaPackage java implements the Java language bindings.
golang.org/x/mobile/bind/objcPackage objc implements the Objective-C language bindings.
golang.org/x/mobile/bind/seqPackage seq implements the machine-dependent seq serialization format.
golang.org/x/mobile/bind/testpkgPackage testpkg contains bound functions for testing the cgo-JNI interface.
golang.org/x/mobile/bind/testpkg/secondpkgPackage secondpkg is imported by bind tests that verify that a bound package can reference another bound package.
golang.org/x/mobile/bind/testpkg/simplepkgPackage simplepkg is imported from testpkg and tests two corner cases.
golang.org/x/mobile/bind/testpkg/unboundpkgPackage simplepkg is imported from testpkg and tests that references to other, unbound packages, are ignored.
golang.org/x/mobile/cmd/gobindGobind generates language bindings that make it possible to call Go functions from Java and Objective-C.
golang.org/x/mobile/cmd/gomobileGomobile is a tool for building and running mobile apps written in Go.
golang.org/x/mobile/event/keyPackage key defines an event for physical keyboard keys.
golang.org/x/mobile/event/lifecyclePackage lifecycle defines an event for an app's lifecycle.
golang.org/x/mobile/event/mousePackage mouse defines an event for mouse input.
golang.org/x/mobile/event/paintPackage paint defines an event for the app being ready to paint.
golang.org/x/mobile/event/sizePackage size defines an event for the dimensions, physical resolution and orientation of the app's window.
golang.org/x/mobile/event/touchPackage touch defines an event for touch input.
golang.org/x/mobile/example/basicAn app that draws a green triangle on a red background.
golang.org/x/mobile/example/bind/helloPackage hello is a trivial package for gomobile bind example.
golang.org/x/mobile/example/flappyFlappy Gopher is a simple one-button game that uses the mobile framework and the experimental sprite engine.
golang.org/x/mobile/example/networkAn app that paints green if golang.org is reachable when the app first starts, or red otherwise.
golang.org/x/mobile/exp/app/debugPackage debug provides GL-based debugging tools for apps.
golang.org/x/mobile/exp/audio/alPackage al provides OpenAL Soft bindings for Go.
golang.org/x/mobile/exp/f32Package f32 implements some linear algebra and GL helpers for float32s.
golang.org/x/mobile/exp/fontPackage font provides platform independent access to system fonts.
golang.org/x/mobile/exp/gl/glutilPackage glutil implements OpenGL utility functions.
golang.org/x/mobile/exp/sensorPackage sensor provides sensor events from various movement sensors.
golang.org/x/mobile/exp/spritePackage sprite provides a 2D scene graph for rendering and animation.
golang.org/x/mobile/exp/sprite/clockPackage clock provides a clock and time functions for a sprite engine.
golang.org/x/mobile/exp/sprite/glspritePackage glsprite implements a sprite Engine using OpenGL ES 2.
golang.org/x/mobile/exp/sprite/portablePackage portable implements a sprite Engine using the image package.
golang.org/x/mobile/geomPackage geom defines a two-dimensional coordinate system.
golang.org/x/mobile/glPackage gl implements Go bindings for OpenGL ES 2.0 and ES 3.0.
golang.org/x/mobile/internal/binresPackage binres implements encoding and decoding of android binary resources.
golang.org/x/mobile/internal/importersThe importers package uses go/​ast to analyze Go packages or Go files and collect references to types whose package has a package prefix.
golang.org/x/mobile/internal/importers/javaThe java package takes the result of an AST traversal by the importers package and queries the java command for the type information for the referenced Java classes and interfaces.
golang.org/x/mobile/internal/importers/objcThe objc package takes the result of an AST traversal by the importers package and uses the clang command to dump the type information for the referenced ObjC classes and protocols.
golang.org/x/mobile/internal/mobileinitPackage mobileinit contains common initialization logic for mobile platforms that is relevant to both all-Go apps and gobind-based apps.
golang.org/x/net/bpfPackage bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine.
golang.org/x/net/contextPackage context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
golang.org/x/net/context/ctxhttpPackage ctxhttp provides helper functions for performing context-aware HTTP requests.
golang.org/x/net/dictPackage dict implements the Dictionary Server Protocol as defined in RFC 2229.
golang.org/x/net/dns/dnsmessagePackage dnsmessage provides a mostly RFC 1035 compliant implementation of DNS message packing and unpacking.
golang.org/x/net/htmlPackage html implements an HTML5-compliant tokenizer and parser.
golang.org/x/net/html/atomPackage atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and "id".
golang.org/x/net/html/charsetPackage charset provides common text encodings for HTML documents.
golang.org/x/net/http2Package http2 implements the HTTP/2 protocol.
golang.org/x/net/http2/h2iThe h2i command is an interactive HTTP/​2 console.
golang.org/x/net/http2/hpackPackage hpack implements HPACK, a compression format for efficiently representing HTTP header fields in the context of HTTP/​2.
golang.org/x/net/icmpPackage icmp provides basic functions for the manipulation of messages used in the Internet Control Message Protocols, ICMPv4 and ICMPv6.
golang.org/x/net/idnaPackage idna implements IDNA2008 using the compatibility processing defined by UTS (Unicode Technical Standard) #46, which defines a standard to deal with the transition from IDNA2003.
golang.org/x/net/internal/ianaPackage iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA).
golang.org/x/net/internal/netreflectPackage netreflect implements run-time reflection for the facilities of net package.
golang.org/x/net/internal/nettestPackage nettest provides utilities for network testing.
golang.org/x/net/internal/timeseriesPackage timeseries implements a time series structure for stats collection.
golang.org/x/net/ipv4Package ipv4 implements IP-level socket options for the Internet Protocol version 4.
golang.org/x/net/ipv6Package ipv6 implements IP-level socket options for the Internet Protocol version 6.
golang.org/x/net/lex/httplexPackage httplex contains rules around lexical matters of various HTTP-related specifications.
golang.org/x/net/nettestPackage nettest provides utilities for network testing.
golang.org/x/net/netutilPackage netutil provides network utility functions, complementing the more common ones in the net package.
golang.org/x/net/proxyPackage proxy provides support for a variety of protocols to proxy network data.
golang.org/x/net/publicsuffixPackage publicsuffix provides a public suffix list based on data from http:/​/​publicsuffix.org/​.
golang.org/x/net/routePackage route provides basic functions for the manipulation of packet routing facilities on BSD variants.
golang.org/x/net/tracePackage trace implements tracing of requests and long-lived objects.
golang.org/x/net/webdavPackage webdav provides a WebDAV server implementation.
golang.org/x/net/webdav/internal/xmlPackage xml implements a simple XML 1.0 parser that understands XML name spaces.
golang.org/x/net/websocketPackage websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.
golang.org/x/net/xsrftokenPackage xsrftoken provides methods for generating and validating secure XSRF tokens.
golang.org/x/oauth2Package oauth2 provides support for making OAuth2 authorized and authenticated HTTP requests.
golang.org/x/oauth2/amazonPackage amazon provides constants for using OAuth2 to access Amazon.
golang.org/x/oauth2/bitbucketPackage bitbucket provides constants for using OAuth2 to access Bitbucket.
golang.org/x/oauth2/clientcredentialsPackage clientcredentials implements the OAuth2.0 "client credentials" token flow, also known as the "two-legged OAuth 2.0".
golang.org/x/oauth2/facebookPackage facebook provides constants for using OAuth2 to access Facebook.
golang.org/x/oauth2/fitbitPackage fitbit provides constants for using OAuth2 to access the Fitbit API.
golang.org/x/oauth2/foursquarePackage foursquare provides constants for using OAuth2 to access Foursquare.
golang.org/x/oauth2/githubPackage github provides constants for using OAuth2 to access Github.
golang.org/x/oauth2/googlePackage google provides support for making OAuth2 authorized and authenticated HTTP requests to Google APIs.
golang.org/x/oauth2/herokuPackage heroku provides constants for using OAuth2 to access Heroku.
golang.org/x/oauth2/hipchatPackage hipchat provides constants for using OAuth2 to access HipChat.
golang.org/x/oauth2/internalPackage internal contains support packages for oauth2 package.
golang.org/x/oauth2/jwsPackage jws provides a partial implementation of JSON Web Signature encoding and decoding.
golang.org/x/oauth2/jwtPackage jwt implements the OAuth 2.0 JSON Web Token flow, commonly known as "two-legged OAuth 2.0".
golang.org/x/oauth2/linkedinPackage linkedin provides constants for using OAuth2 to access LinkedIn.
golang.org/x/oauth2/mediamathPackage mediamath provides constants for using OAuth2 to access MediaMath.
golang.org/x/oauth2/microsoftPackage microsoft provides constants for using OAuth2 to access Windows Live ID.
golang.org/x/oauth2/odnoklassnikiPackage odnoklassniki provides constants for using OAuth2 to access Odnoklassniki.
golang.org/x/oauth2/paypalPackage paypal provides constants for using OAuth2 to access PayPal.
golang.org/x/oauth2/slackPackage slack provides constants for using OAuth2 to access Slack.
golang.org/x/oauth2/uberPackage uber provides constants for using OAuth2 to access Uber.
golang.org/x/oauth2/vkPackage vk provides constants for using OAuth2 to access VK.com.
golang.org/x/oauth2/yandexPackage yandex provides constants for using OAuth2 to access Yandex APIs.
golang.org/x/perf/benchstat
golang.org/x/perf/cmd/benchsaveBenchsave uploads benchmark results to a storage server.
golang.org/x/perf/cmd/benchstatBenchstat computes and compares statistics about benchmarks.
golang.org/x/perf/internal/basedirPackage basedir finds templates and static files associated with a binary.
golang.org/x/perf/internal/diff
golang.org/x/perf/internal/statsPackage stats implements several statistical distributions, hypothesis tests, and functions for descriptive statistics.
golang.org/x/perf/storagePackage storage contains a client for the performance data storage server.
golang.org/x/perf/storage/appPackage app implements the performance data storage server.
golang.org/x/perf/storage/benchfmtPackage benchfmt provides readers and writers for the Go benchmark format.
golang.org/x/perf/storage/dbPackage db provides the high-level database interface for the storage app.
golang.org/x/perf/storage/db/dbtest
golang.org/x/perf/storage/db/sqlite3Package sqlite3 provides the sqlite3 driver for x/​perf/​storage/​db.
golang.org/x/perf/storage/fsPackage fs provides a backend-agnostic filesystem layer for storing performance results.
golang.org/x/perf/storage/fs/gcsPackage gcs implements the fs.FS interface using Google Cloud Storage.
golang.org/x/perf/storage/fs/localPackage local implements the fs.FS interface using local files.
golang.org/x/perf/storage/localperfdataLocalperfdata runs an HTTP server for benchmark storage.
golang.org/x/perf/storage/queryPackage query provides tools for parsing a query.
golang.org/x/playground/sandboxCommand sandbox is an HTTP server that takes requests containing go source files, and builds and executes them in a NaCl sanbox.
golang.org/x/review/git-codereviewGit-codereview manages the code review process for Git changes using a Gerrit server.
golang.org/x/sync/errgroupPackage errgroup provides synchronization, error propagation, and Context cancelation for groups of goroutines working on subtasks of a common task.
golang.org/x/sync/semaphorePackage semaphore provides a weighted semaphore implementation.
golang.org/x/sync/singleflightPackage singleflight provides a duplicate function call suppression mechanism.
golang.org/x/sync/syncmapPackage syncmap provides a concurrent map implementation.
golang.org/x/sys/plan9
golang.org/x/sys/unixPackage unix contains an interface to the low-level operating system primitives.
golang.org/x/sys/windowsPackage windows contains an interface to the low-level operating system primitives.
golang.org/x/sys/windows/registryPackage registry provides access to the Windows registry.
golang.org/x/sys/windows/svcPackage svc provides everything required to build Windows service.
golang.org/x/sys/windows/svc/debugPackage debug provides facilities to execute svc.Handler on console.
golang.org/x/sys/windows/svc/eventlogPackage eventlog implements access to Windows event log.
golang.org/x/sys/windows/svc/exampleExample service program that beeps.
golang.org/x/sys/windows/svc/mgrPackage mgr can be used to manage Windows service programs.
golang.org/x/talks/2015/keeping-up
golang.org/x/talks/2016/applicative
golang.org/x/talks/2016/applicative/google
golang.org/x/talks/2016/asm
golang.org/x/texttext is a repository of text-related packages related to internationalization (i18n) and localization (l10n), such as character encodings, text transformations, and locale-specific text handling.
golang.org/x/text/casesPackage cases provides general and language-specific case mappers.
golang.org/x/text/cmd/gotextgotext is a tool for managing text in Go source code.
golang.org/x/text/collatePackage collate contains types for comparing and sorting Unicode strings according to a given collation order.
golang.org/x/text/collate/build
golang.org/x/text/collate/tools/colcmp
golang.org/x/text/currencyPackage currency contains currency-related functionality.
golang.org/x/text/encodingPackage encoding defines an interface for character encodings, such as Shift JIS and Windows 1252, that can convert to and from UTF-8.
golang.org/x/text/encoding/charmapPackage charmap provides simple character encodings such as IBM Code Page 437 and Windows 1252.
golang.org/x/text/encoding/htmlindexPackage htmlindex maps character set encoding names to Encodings as recommended by the W3C for use in HTML 5.
golang.org/x/text/encoding/ianaindexPackage ianaindex maps names to Encodings as specified by the IANA registry.
golang.org/x/text/encoding/internalPackage internal contains code that is shared among encoding implementations.
golang.org/x/text/encoding/internal/enctest
golang.org/​x/​text/​encoding/​internal/​identifierPackage identifier defines the contract between implementations of Encoding and Index by defining identifiers that uniquely identify standardized coded character sets (CCS) and character encoding schemes (CES), which we will together refer to as encodings, for which Encoding implementations provide converters to and from UTF-8.
golang.org/x/text/encoding/japanesePackage japanese provides Japanese encodings such as EUC-JP and Shift JIS.
golang.org/x/text/encoding/koreanPackage korean provides Korean encodings such as EUC-KR.
golang.org/x/text/encoding/simplifiedchinesePackage simplifiedchinese provides Simplified Chinese encodings such as GBK.
golang.org/x/text/encoding/traditionalchinesePackage traditionalchinese provides Traditional Chinese encodings such as Big5.
golang.org/x/text/encoding/unicodePackage unicode provides Unicode encodings such as UTF-16.
golang.org/x/text/encoding/unicode/utf32Package utf32 provides the UTF-32 Unicode encoding.
golang.org/x/text/feature/pluralPackage plural provides utilities for handling linguistic plurals in text.
golang.org/x/text/internalPackage internal contains non-exported functionality that are used by packages in the text repository.
golang.org/x/text/internal/catmsg
golang.org/x/text/internal/colltabPackage colltab contains functionality related to collation tables.
golang.org/x/text/internal/export/idnaPackage idna implements IDNA2008 using the compatibility processing defined by UTS (Unicode Technical Standard) #46, which defines a standard to deal with the transition from IDNA2003.
golang.org/x/text/internal/formatPackage format contains types for defining language-specific formatting of values.
golang.org/x/text/internal/genPackage gen contains common code for the various code generation tools in the text repository.
golang.org/x/text/internal/numberPackage number contains tools and data for formatting numbers.
golang.org/x/text/internal/stringsetPackage stringset provides a way to represent a collection of strings compactly.
golang.org/x/text/internal/tagPackage tag contains functionality handling tags and related data.
golang.org/x/text/internal/testtextPackage testtext contains test data that is of common use to the text repository.
golang.org/x/text/internal/triegenPackage triegen implements a code generator for a trie for associating unsigned integer values with UTF-8 encoded runes.
golang.org/x/text/internal/ucdPackage ucd provides a parser for Unicode Character Database files, the format of which is defined in http:/​/​www.unicode.org/​reports/​tr44/​.
golang.org/x/text/internal/utf8internalPackage utf8internal contains low-level utf8-related constants, tables, etc.
golang.org/x/text/languagePackage language implements BCP 47 language tags and related functionality.
golang.org/x/text/language/displayPackage display provides display names for languages, scripts and regions in a requested language.
golang.org/x/text/messagePackage message implements formatted I/​O for localized strings with functions analogous to the fmt's print functions.
golang.org/x/text/runesPackage runes provide transforms for UTF-8 encoded text.
golang.org/x/text/searchPackage search provides language-specific search and string matching.
golang.org/x/text/securesecure is a repository of text security related packages.
golang.org/x/text/secure/bidirulePackage bidirule implements the Bidi Rule defined by RFC 5893.
golang.org/x/text/secure/precisPackage precis contains types and functions for the preparation, enforcement, and comparison of internationalized strings ("PRECIS") as defined in RFC 7564.
golang.org/x/text/transformPackage transform provides reader and writer wrappers that transform the bytes passing through as well as various transformations.
golang.org/x/text/unicodeunicode holds packages with implementations of Unicode standards that are mostly used as building blocks for other packages in golang.org/​x/​text, layout engines, or are otherwise more low-level in nature.
golang.org/x/text/unicode/bidiPackage bidi contains functionality for bidirectional text support.
golang.org/x/text/unicode/cldrPackage cldr provides a parser for LDML and related XML formats.
golang.org/x/text/unicode/normPackage norm contains types and functions for normalizing Unicode strings.
golang.org/x/text/unicode/rangetablePackage rangetable provides utilities for creating and inspecting unicode.RangeTables.
golang.org/x/text/unicode/runenamesPackage runenames provides rune names from the Unicode Character Database.
golang.org/x/text/widthPackage width provides functionality for handling different widths in text.
golang.org/x/time/ratePackage rate provides a rate limiter.
golang.org/x/tools/benchmark/parsePackage parse provides support for parsing benchmark results as generated by 'go test -bench'.
golang.org/x/tools/blogPackage blog implements a web server for articles written in present format.
golang.org/x/tools/blog/atomPackage atom defines XML data structures for an Atom feed.
golang.org/x/tools/cmd/benchcmpThe benchcmp command displays performance changes between benchmarks.
golang.org/x/tools/cmd/bundleBundle creates a single-source-file version of a source package suitable for inclusion in a particular target package.
golang.org/x/tools/cmd/callgraphcallgraph: a tool for reporting the call graph of a Go program.
golang.org/x/tools/cmd/compilebenchCompilebench benchmarks the speed of the Go compiler.
golang.org/x/tools/cmd/coverCover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
golang.org/x/tools/cmd/digraphThe digraph command performs queries over unlabelled directed graphs represented in text form.
golang.org/x/tools/cmd/egThe eg command performs example-based refactoring.
golang.org/x/tools/cmd/fiximportsThe fiximports command fixes import declarations to use the canonical import path for packages that have an "import comment" as defined by https:/​/​golang.org/​s/​go14customimport.
golang.org/x/tools/cmd/godexThe godex command prints (dumps) exported information of packages or selected package objects.
golang.org/x/tools/cmd/godocGodoc extracts and generates documentation for Go programs.
golang.org/x/tools/cmd/goimportsCommand goimports updates your Go import lines, adding missing ones and removing unreferenced ones.
golang.org/x/tools/cmd/gomvpkgThe gomvpkg command moves go packages, updating import declarations.
golang.org/x/tools/cmd/gorenameThe gorename command performs precise type-safe renaming of identifiers in Go source code.
golang.org/x/tools/cmd/gotypeThe gotype command, like the front-end of a Go compiler, parses and type-checks a single Go package.
golang.org/x/tools/cmd/goyaccGoyacc is a version of yacc for Go.
golang.org/x/tools/cmd/guruguru: a tool for answering questions about Go source code.
golang.org/x/tools/cmd/guru/serialPackage serial defines the guru's schema for -json output.
golang.org/x/tools/cmd/heapviewheapview is a tool for viewing Go heap dumps.
golang.org/x/tools/cmd/html2articleThis program takes an HTML file and outputs a corresponding article file in present format.
golang.org/x/tools/cmd/presentPresent displays slide presentations and articles.
golang.org/x/tools/cmd/ssadumpssadump: a tool for displaying and interpreting the SSA form of Go programs.
golang.org/x/tools/cmd/stressThe stress utility is intended for catching of episodic failures.
golang.org/x/tools/cmd/stringerStringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.
golang.org/x/tools/cmd/tipCommand tip is the tip.golang.org server, serving the latest HEAD straight from the Git oven.
golang.org/x/tools/cmd/toolstashToolstash provides a way to save, run, and restore a known good copy of the Go toolchain and to compare the object files generated by two toolchains.
golang.org/x/tools/container/intsetsPackage intsets provides Sparse, a compact and fast representation for sparse sets of int values.
golang.org/x/tools/coverPackage cover provides support for parsing coverage profiles generated by "go test -coverprofile=cover.out".
golang.org/x/tools/go/ast/astutilPackage astutil contains common utilities for working with the Go AST.
golang.org/x/tools/go/buildutilPackage buildutil provides utilities related to the go/​build package in the standard library.
golang.org/x/tools/go/callgraphPackage callgraph defines the call graph and various algorithms and utilities to operate on it.
golang.org/x/tools/go/callgraph/chaPackage cha computes the call graph of a Go program using the Class Hierarchy Analysis (CHA) algorithm.
golang.org/x/tools/go/callgraph/rtaThis package provides Rapid Type Analysis (RTA) for Go, a fast algorithm for call graph construction and discovery of reachable code (and hence dead code) and runtime types.
golang.org/x/tools/go/callgraph/staticPackage static computes the call graph of a Go program containing only static call edges.
golang.org/x/tools/godocPackage godoc is a work-in-progress (2013-07-17) package to begin splitting up the godoc binary into multiple pieces.
golang.org/x/tools/godoc/analysisPackage analysis performs type and pointer analysis and generates mark-up for the Go source view.
golang.org/x/tools/godoc/redirectPackage redirect provides hooks to register HTTP handlers that redirect old godoc paths to their new equivalents and assist in accessing the issue tracker, wiki, code review system, etc.
golang.org/x/tools/godoc/staticPackage static exports a map of static file content that supports the godoc user interface.
golang.org/x/tools/godoc/utilPackage util contains utility types and functions for godoc.
golang.org/x/tools/godoc/vfsPackage vfs defines types for abstract file system access and provides an implementation accessing the file system of the underlying OS.
golang.org/x/tools/godoc/vfs/gatefsPackage gatefs provides an implementation of the FileSystem interface that wraps another FileSystem and limits its concurrency.
golang.org/x/tools/godoc/vfs/httpfsPackage httpfs implements http.FileSystem using a godoc vfs.FileSystem.
golang.org/x/tools/godoc/vfs/mapfsPackage mapfs file provides an implementation of the FileSystem interface based on the contents of a map[string]string.
golang.org/x/tools/godoc/vfs/zipfsPackage zipfs file provides an implementation of the FileSystem interface based on the contents of a .zip file.
golang.org/x/tools/go/gccgoexportdataPackage gccgoexportdata provides functions for reading export data files containing type information produced by the gccgo compiler.
golang.org/x/tools/go/gcexportdataPackage gcexportdata provides functions for locating, reading, and writing export data files containing type information produced by the gc compiler.
golang.org/x/tools/go/gcimporter15Package gcimporter15 provides various functions for reading gc-generated object files that can be used to implement the Importer interface defined by the Go 1.5 standard library package.
golang.org/x/tools/go/internal/gccgoimporterPackage gccgoimporter implements Import for gccgo-generated object files.
golang.org/x/tools/go/loaderPackage loader loads a complete Go program from source code, parsing and type-checking the initial packages plus their transitive closure of dependencies.
golang.org/x/tools/go/pointerPackage pointer implements Andersen's analysis, an inclusion-based pointer analysis algorithm first described in (Andersen, 1994).
golang.org/x/tools/go/ssaPackage ssa defines a representation of the elements of Go programs (packages, types, functions, variables and constants) using a static single-assignment (SSA) form intermediate representation (IR) for the bodies of functions.
golang.org/x/tools/go/ssa/interpPackage ssa/​interp defines an interpreter for the SSA representation of Go programs.
golang.org/x/tools/go/ssa/ssautil
golang.org/x/tools/go/types/typeutilPackage typeutil defines various utilities for types, such as Map, a mapping from types.Type to interface{} values.
golang.org/x/tools/go/vcs
golang.org/x/tools/importsPackage imports implements a Go pretty-printer (like package "go/​format") that also adds or removes import statements as necessary.
golang.org/x/tools/playgroundPackage playground registers HTTP handlers at "/​compile" and "/​share" that proxy requests to the golang.org playground service.
golang.org/x/tools/playground/socketPackage socket implements an WebSocket-based playground backend.
golang.org/x/tools/presentThe present file format
golang.org/x/tools/refactor/egPackage eg implements the example-based refactoring tool whose command-line is defined in golang.org/​x/​tools/​cmd/​eg.
golang.org/x/tools/refactor/importgraphPackage importgraph computes the forward and reverse import dependency graphs for all packages in a Go workspace.
golang.org/x/tools/refactor/renamePackage rename contains the implementation of the 'gorename' command whose main function is in golang.org/​x/​tools/​cmd/​gorename.
golang.org/x/tools/refactor/satisfyPackage satisfy inspects the type-checked ASTs of Go packages and reports the set of discovered type constraints of the form (lhs, rhs Type) where lhs is a non-trivial interface, rhs satisfies this interface, and this fact is necessary for the package to be well-typed.
golang.org/x/tour/gotour
golang.org/x/tour/pic
golang.org/x/tour/reader
golang.org/x/tour/tree
golang.org/x/tour/wc