gorump

module
v0.0.0-...-5f96e96 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 3, 2016 License: MIT

README

Build Status

gorump

This contains code to run Go on the Rumprun unikernel.

Rumprun is a special project because it allows you to run your Go apps unmodified directly on the hypervisor of your choice such as KVM or Xen.

This allows faster boot times, smaller images and a much smaller attack surface for security - not to mention it removes every hacker's favorite syscall - fork.

We believe unikernels are the future of infrastructure.

This repo contains 2 builds:

1.7beta2: 88840e78905bdff7c8e408385182b4f77e8bdd062cac5c0c6382630588d426c7 https://storage.googleapis.com/golang/go1.7beta2.src.tar.gz

1.5.1: c7d78ba4df574b5f9a9bb5d17505f40c4d89b81c ?? https://storage.googleapis.com/golang/go1.5.1.src.tar.gz

1.7 still needs a little bit of love in terms of the HTTP support but is booting. 1.5.1 is the 'stable' (hah!) port.

On top, the NetBSD platform has been modified to support Rumprun instead. To generate a patch: git diff go-1-5-1-upstream master.

We don't intend to fork Go but there's quite a lot of work to do to get it in enough shape to put into the main tree.

You can find the latest build of the modified Go @ https://s3.amazonaws.com/dp-gorump/gorump.tar.gz .

Please submit pull requests!

See examples directory on how to build and use.

Getting Started

There are 2 ways you can install - from apt-get or by downloading the source and the rumprun source and building it yourself.

Install from apt-get
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:engineering-s/gorump
sudo apt-get update
sudo apt-get install gorump
Install from source
Install dependencies
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update -y
sudo apt-get install qemu-kvm -y
sudo apt-get install g++-4.8 -y

or optionally install xen:

sudo apt-get install libxen-dev -y
Install Go to Bootstrap the Modified Go

1.6:

wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz
tar xzf go1.6*
sudo mv go /usr/local/go1.6
sudo ln -s /usr/local/go1.6 /usr/local/go
Add Env variables to your ~/.bashrc
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/home/$(whoami)/go
export PATH=$PATH:$GOPATH/bin
Download and Install Rumprun
git clone https://github.com/rumpkernel/rumprun
git pull origin master
git submodule update --init
CC=cc ./build-rr.sh hw
Add the Rumprun env to your path
export PATH="${PATH}:/home/$(whoami)/rumprun/rumprun/bin"
Build the Modified Go

(from within this repository)

cd go/src && CGO_ENABLED=0 GOROOT_BOOTSTRAP=/usr/local/go GOOS=rumprun GOARCH=amd64 ./make.bash
Install the Modified Go

(from within this repository)

sudo cp -R ../../go /usr/local/go1.7-patched
sudo rm -rf /usr/local/go
sudo ln -s /usr/local/go1.7-patched /usr/local/go
Create your first Rumprun Hello World Webserver
cd examples/httpd && make

or

cd examples/httpd && make xen
Run the Rumprun kernel
HW/KVM

Note: If you are not using rumprun to run your image the minimum memory required is north of 32Mb. We suggest 64Mb. If you do use rumprun the default is 64 so nothing to be concerned with.

  • Add Networking to your Image

via usermode (if you have a wireless only device do this otherwise you have to do the nat hack)

system-x86_64 -m 128 -net nic,model=virtio \
	-net user,hostfwd=tcp::3000-:3000 -kernel httpd.bin \
	-append "{ \"net\" : { \"if\":\"vioif0\",,\"type\":\"inet\",,\"method\":\"dhcp\",,},, \"cmdline\": \"http.bin\"}"

via tap:

sudo ip tuntap add tap0 mode tap
sudo ifconfig tap0 inet 10.181.181.181/24 up
  • Run Your Hello World Webserver
rumprun qemu -i -g '-nographic -vga none' -D 1234 -I t,vioif,'-net tap,ifname=tap0,script=no' -W t,inet,static,10.181.181.180/24 httpd.bin
  • Test Your Hello World Webserver
curl http://10.181.181.180:3000/fast
XEN
  • Get IP of your XEN bridge network interface, by default it's xenbr0
ifconfig xenbr0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1  }'

e.g. output

192.168.58.2

Choose free IP address from the subnet, in our example we'll take 192.168.58.3 and start Hello World Webserver

rumprun xen -i -n inet,static,192.168.58.3/24 httpd-xen.bin
  • Test Your Hello World Webserver
curl http://192.168.58.3:3000/fast
Hacking Instructions
go tool dist list

logging options w/qemu:

-serial file:/tmp/blah -nographic -vga none

Directories

Path Synopsis
1.7
go/doc/codewalk
Generating random text: a Markov chain algorithm
Generating random text: a Markov chain algorithm
go/doc/play
An implementation of Conway's Game of Life.
An implementation of Conway's Game of Life.
go/misc/android
Cleaner removes anything from /data/local/tmp/goroot not on a builtin list.
Cleaner removes anything from /data/local/tmp/goroot not on a builtin list.
go/misc/cgo/gmp
An example of wrapping a C library in Go.
An example of wrapping a C library in Go.
go/misc/cgo/test
Test that the #cgo CFLAGS directive works, with and without platform filters.
Test that the #cgo CFLAGS directive works, with and without platform filters.
go/misc/ios
This program can be used as go_darwin_arm_exec by the Go tool.
This program can be used as go_darwin_arm_exec by the Go tool.
go/misc/linkcheck
The linkcheck command finds missing links in the godoc website.
The linkcheck command finds missing links in the godoc website.
go/misc/nacl
Mkzip creates a zip file from a 'proto' file describing the contents.
Mkzip creates a zip file from a 'proto' file describing the contents.
go/misc/sortac
Sortac sorts the AUTHORS and CONTRIBUTORS files.
Sortac sorts the AUTHORS and CONTRIBUTORS files.
go/src/archive/tar
Package tar implements access to tar archives.
Package tar implements access to tar archives.
go/src/archive/zip
Package zip provides support for reading and writing ZIP archives.
Package zip provides support for reading and writing ZIP archives.
go/src/bufio
Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O.
Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O.
go/src/builtin
Package builtin provides documentation for Go's predeclared identifiers.
Package builtin provides documentation for Go's predeclared identifiers.
go/src/bytes
Package bytes implements functions for the manipulation of byte slices.
Package bytes implements functions for the manipulation of byte slices.
go/src/cmd/addr2line
Addr2line is a minimal simulation of the GNU addr2line tool, just enough to support pprof.
Addr2line is a minimal simulation of the GNU addr2line tool, just enough to support pprof.
go/src/cmd/api
Binary api computes the exported API of a set of Go packages.
Binary api computes the exported API of a set of Go packages.
go/src/cmd/asm
Asm, typically invoked as “go tool asm”, assembles the source file into an object file named for the basename of the argument source file with a .o suffix.
Asm, typically invoked as “go tool asm”, assembles the source file into an object file named for the basename of the argument source file with a .o suffix.
go/src/cmd/asm/internal/asm
Package asm implements the parser and instruction generator for the assembler.
Package asm implements the parser and instruction generator for the assembler.
go/src/cmd/asm/internal/flags
Package flags implements top-level flags and the usage message for the assembler.
Package flags implements top-level flags and the usage message for the assembler.
go/src/cmd/asm/internal/lex
Package lex implements lexical analysis for the assembler.
Package lex implements lexical analysis for the assembler.
go/src/cmd/cgo
Cgo enables the creation of Go packages that call C code.
Cgo enables the creation of Go packages that call C code.
go/src/cmd/compile
Compile, typically invoked as “go tool compile,” compiles a single Go package comprising the files named on the command line.
Compile, typically invoked as “go tool compile,” compiles a single Go package comprising the files named on the command line.
go/src/cmd/cover
Cover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
Cover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
go/src/cmd/doc
Doc (usually run as go doc) accepts zero, one or two arguments.
Doc (usually run as go doc) accepts zero, one or two arguments.
go/src/cmd/fix
Fix finds Go programs that use old APIs and rewrites them to use newer ones.
Fix finds Go programs that use old APIs and rewrites them to use newer ones.
go/src/cmd/go
Go is a tool for managing Go source code.
Go is a tool for managing Go source code.
go/src/cmd/gofmt
Gofmt formats Go programs.
Gofmt formats Go programs.
go/src/cmd/internal/bio
Package bio implements common I/O abstractions used within the Go toolchain.
Package bio implements common I/O abstractions used within the Go toolchain.
go/src/cmd/internal/gcprog
Package gcprog implements an encoder for packed GC pointer bitmaps, known as GC programs.
Package gcprog implements an encoder for packed GC pointer bitmaps, known as GC programs.
go/src/cmd/internal/goobj
Package goobj implements reading of Go object files and archives.
Package goobj implements reading of Go object files and archives.
go/src/cmd/internal/objfile
Package objfile implements portable access to OS-specific executable files.
Package objfile implements portable access to OS-specific executable files.
go/src/cmd/internal/pprof/commands
Package commands defines and manages the basic pprof commands
Package commands defines and manages the basic pprof commands
go/src/cmd/internal/pprof/driver
Package driver implements the core pprof functionality.
Package driver implements the core pprof functionality.
go/src/cmd/internal/pprof/fetch
Package fetch provides an extensible mechanism to fetch a profile from a data source.
Package fetch provides an extensible mechanism to fetch a profile from a data source.
go/src/cmd/internal/pprof/plugin
Package plugin defines the plugin implementations that the main pprof driver requires.
Package plugin defines the plugin implementations that the main pprof driver requires.
go/src/cmd/internal/pprof/profile
Package profile provides a representation of profile.proto and methods to encode/decode profiles in this format.
Package profile provides a representation of profile.proto and methods to encode/decode profiles in this format.
go/src/cmd/internal/pprof/report
Package report summarizes a performance profile into a human-readable report.
Package report summarizes a performance profile into a human-readable report.
go/src/cmd/internal/pprof/svg
Package svg provides tools related to handling of SVG files
Package svg provides tools related to handling of SVG files
go/src/cmd/internal/pprof/symbolizer
Package symbolizer provides a routine to populate a profile with symbol, file and line number information.
Package symbolizer provides a routine to populate a profile with symbol, file and line number information.
go/src/cmd/internal/pprof/symbolz
Package symbolz symbolizes a profile using the output from the symbolz service.
Package symbolz symbolizes a profile using the output from the symbolz service.
go/src/cmd/internal/pprof/tempfile
Package tempfile provides tools to create and delete temporary files
Package tempfile provides tools to create and delete temporary files
go/src/cmd/link
Link, typically invoked as “go tool link,” reads the Go archive or object for a package main, along with its dependencies, and combines them into an executable binary.
Link, typically invoked as “go tool link,” reads the Go archive or object for a package main, along with its dependencies, and combines them into an executable binary.
go/src/cmd/nm
Nm lists the symbols defined or used by an object file, archive, or executable.
Nm lists the symbols defined or used by an object file, archive, or executable.
go/src/cmd/objdump
Objdump disassembles executable files.
Objdump disassembles executable files.
go/src/cmd/pack
Pack is a simple version of the traditional Unix ar tool.
Pack is a simple version of the traditional Unix ar tool.
go/src/cmd/pprof
Pprof interprets and displays profiles of Go programs.
Pprof interprets and displays profiles of Go programs.
go/src/cmd/trace
Trace is a tool for viewing trace files.
Trace is a tool for viewing trace files.
go/src/cmd/vet
Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.
Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.
go/src/cmd/vet/internal/whitelist
Package whitelist defines exceptions for the vet tool.
Package whitelist defines exceptions for the vet tool.
go/src/cmd/yacc
Yacc is a version of yacc for Go.
Yacc is a version of yacc for Go.
go/src/compress/bzip2
Package bzip2 implements bzip2 decompression.
Package bzip2 implements bzip2 decompression.
go/src/compress/flate
Package flate implements the DEFLATE compressed data format, described in RFC 1951.
Package flate implements the DEFLATE compressed data format, described in RFC 1951.
go/src/compress/gzip
Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952.
Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952.
go/src/compress/lzw
Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19.
Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19.
go/src/compress/zlib
Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950.
Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950.
go/src/container/heap
Package heap provides heap operations for any type that implements heap.Interface.
Package heap provides heap operations for any type that implements heap.Interface.
go/src/container/list
Package list implements a doubly linked list.
Package list implements a doubly linked list.
go/src/container/ring
Package ring implements operations on circular lists.
Package ring implements operations on circular lists.
go/src/context
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
go/src/crypto
Package crypto collects common cryptographic constants.
Package crypto collects common cryptographic constants.
go/src/crypto/aes
Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
go/src/crypto/cipher
Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
go/src/crypto/des
Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
go/src/crypto/dsa
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
go/src/crypto/ecdsa
Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-3.
Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-3.
go/src/crypto/elliptic
Package elliptic implements several standard elliptic curves over prime fields.
Package elliptic implements several standard elliptic curves over prime fields.
go/src/crypto/hmac
Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
go/src/crypto/md5
Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
go/src/crypto/rand
Package rand implements a cryptographically secure pseudorandom number generator.
Package rand implements a cryptographically secure pseudorandom number generator.
go/src/crypto/rc4
Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
go/src/crypto/rsa
Package rsa implements RSA encryption as specified in PKCS#1.
Package rsa implements RSA encryption as specified in PKCS#1.
go/src/crypto/sha1
Package sha1 implements the SHA1 hash algorithm as defined in RFC 3174.
Package sha1 implements the SHA1 hash algorithm as defined in RFC 3174.
go/src/crypto/sha256
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
go/src/crypto/sha512
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
go/src/crypto/subtle
Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
go/src/crypto/tls
Package tls partially implements TLS 1.2, as specified in RFC 5246.
Package tls partially implements TLS 1.2, as specified in RFC 5246.
go/src/crypto/x509
Package x509 parses X.509-encoded keys and certificates.
Package x509 parses X.509-encoded keys and certificates.
go/src/crypto/x509/pkix
Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
go/src/database/sql
Package sql provides a generic interface around SQL (or SQL-like) databases.
Package sql provides a generic interface around SQL (or SQL-like) databases.
go/src/database/sql/driver
Package driver defines interfaces to be implemented by database drivers as used by package sql.
Package driver defines interfaces to be implemented by database drivers as used by package sql.
go/src/debug/dwarf
Package 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
Package 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
go/src/debug/elf
Package elf implements access to ELF object files.
Package elf implements access to ELF object files.
go/src/debug/gosym
Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
go/src/debug/macho
Package macho implements access to Mach-O object files.
Package macho implements access to Mach-O object files.
go/src/debug/pe
Package pe implements access to PE (Microsoft Windows Portable Executable) files.
Package pe implements access to PE (Microsoft Windows Portable Executable) files.
go/src/debug/plan9obj
Package plan9obj implements access to Plan 9 a.out object files.
Package plan9obj implements access to Plan 9 a.out object files.
go/src/encoding
Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
go/src/encoding/ascii85
Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats.
Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats.
go/src/encoding/asn1
Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
go/src/encoding/base32
Package base32 implements base32 encoding as specified by RFC 4648.
Package base32 implements base32 encoding as specified by RFC 4648.
go/src/encoding/base64
Package base64 implements base64 encoding as specified by RFC 4648.
Package base64 implements base64 encoding as specified by RFC 4648.
go/src/encoding/binary
Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints.
Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints.
go/src/encoding/csv
Package csv reads and writes comma-separated values (CSV) files.
Package csv reads and writes comma-separated values (CSV) files.
go/src/encoding/gob
Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver).
Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver).
go/src/encoding/hex
Package hex implements hexadecimal encoding and decoding.
Package hex implements hexadecimal encoding and decoding.
go/src/encoding/json
Package json implements encoding and decoding of JSON as defined in RFC 4627.
Package json implements encoding and decoding of JSON as defined in RFC 4627.
go/src/encoding/pem
Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail.
Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail.
go/src/encoding/xml
Package xml implements a simple XML 1.0 parser that understands XML name spaces.
Package xml implements a simple XML 1.0 parser that understands XML name spaces.
go/src/errors
Package errors implements functions to manipulate errors.
Package errors implements functions to manipulate errors.
go/src/expvar
Package expvar provides a standardized interface to public variables, such as operation counters in servers.
Package expvar provides a standardized interface to public variables, such as operation counters in servers.
go/src/flag
Package flag implements command-line flag parsing.
Package flag implements command-line flag parsing.
go/src/fmt
Package fmt implements formatted I/O with functions analogous to C's printf and scanf.
Package fmt implements formatted I/O with functions analogous to C's printf and scanf.
go/src/go/ast
Package ast declares the types used to represent syntax trees for Go packages.
Package ast declares the types used to represent syntax trees for Go packages.
go/src/go/build
Package build gathers information about Go packages.
Package build gathers information about Go packages.
go/src/go/constant
Package constant implements Values representing untyped Go constants and their corresponding operations.
Package constant implements Values representing untyped Go constants and their corresponding operations.
go/src/go/doc
Package doc extracts source code documentation from a Go AST.
Package doc extracts source code documentation from a Go AST.
go/src/go/format
Package format implements standard formatting of Go source.
Package format implements standard formatting of Go source.
go/src/go/importer
Package importer provides access to export data importers.
Package importer provides access to export data importers.
go/src/go/internal/gccgoimporter
Package gccgoimporter implements Import for gccgo-generated object files.
Package gccgoimporter implements Import for gccgo-generated object files.
go/src/go/internal/gcimporter
Package gcimporter implements Import for gc-generated object files.
Package gcimporter implements Import for gc-generated object files.
go/src/go/parser
Package parser implements a parser for Go source files.
Package parser implements a parser for Go source files.
go/src/go/printer
Package printer implements printing of AST nodes.
Package printer implements printing of AST nodes.
go/src/go/scanner
Package scanner implements a scanner for Go source text.
Package scanner implements a scanner for Go source text.
go/src/go/token
Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates).
Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates).
go/src/go/types
Package types declares the data types and implements the algorithms for type-checking of Go packages.
Package types declares the data types and implements the algorithms for type-checking of Go packages.
go/src/hash
Package hash provides interfaces for hash functions.
Package hash provides interfaces for hash functions.
go/src/hash/adler32
Package adler32 implements the Adler-32 checksum.
Package adler32 implements the Adler-32 checksum.
go/src/hash/crc32
Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
go/src/hash/crc64
Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum.
Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum.
go/src/hash/fnv
Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo.
Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo.
go/src/html
Package html provides functions for escaping and unescaping HTML text.
Package html provides functions for escaping and unescaping HTML text.
go/src/html/template
Package template (html/template) implements data-driven templates for generating HTML output safe against code injection.
Package template (html/template) implements data-driven templates for generating HTML output safe against code injection.
go/src/image
Package image implements a basic 2-D image library.
Package image implements a basic 2-D image library.
go/src/image/color
Package color implements a basic color library.
Package color implements a basic color library.
go/src/image/color/palette
Package palette provides standard color palettes.
Package palette provides standard color palettes.
go/src/image/draw
Package draw provides image composition functions.
Package draw provides image composition functions.
go/src/image/gif
Package gif implements a GIF image decoder and encoder.
Package gif implements a GIF image decoder and encoder.
go/src/image/internal/imageutil
Package imageutil contains code shared by image-related packages.
Package imageutil contains code shared by image-related packages.
go/src/image/jpeg
Package jpeg implements a JPEG image decoder and encoder.
Package jpeg implements a JPEG image decoder and encoder.
go/src/image/png
Package png implements a PNG image decoder and encoder.
Package png implements a PNG image decoder and encoder.
go/src/index/suffixarray
Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.
Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.
go/src/internal/nettrace
Package nettrace contains internal hooks for tracing activity in the net package.
Package nettrace contains internal hooks for tracing activity in the net package.
go/src/internal/race
Package race contains helper functions for manually instrumenting code for the race detector.
Package race contains helper functions for manually instrumenting code for the race detector.
go/src/internal/singleflight
Package singleflight provides a duplicate function call suppression mechanism.
Package singleflight provides a duplicate function call suppression mechanism.
go/src/internal/syscall/windows/registry
Package registry provides access to the Windows registry.
Package registry provides access to the Windows registry.
go/src/internal/syscall/windows/sysdll
Package sysdll is an internal leaf package that records and reports which Windows DLL names are used by Go itself.
Package sysdll is an internal leaf package that records and reports which Windows DLL names are used by Go itself.
go/src/internal/testenv
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
go/src/io
Package io provides basic interfaces to I/O primitives.
Package io provides basic interfaces to I/O primitives.
go/src/io/ioutil
Package ioutil implements some I/O utility functions.
Package ioutil implements some I/O utility functions.
go/src/log
Package log implements a simple logging package.
Package log implements a simple logging package.
go/src/log/syslog
Package syslog provides a simple interface to the system log service.
Package syslog provides a simple interface to the system log service.
go/src/math
Package math provides basic constants and mathematical functions.
Package math provides basic constants and mathematical functions.
go/src/math/big
Package big implements arbitrary-precision arithmetic (big numbers).
Package big implements arbitrary-precision arithmetic (big numbers).
go/src/math/cmplx
Package cmplx provides basic constants and mathematical functions for complex numbers.
Package cmplx provides basic constants and mathematical functions for complex numbers.
go/src/math/rand
Package rand implements pseudo-random number generators.
Package rand implements pseudo-random number generators.
go/src/mime
Package mime implements parts of the MIME spec.
Package mime implements parts of the MIME spec.
go/src/mime/multipart
Package multipart implements MIME multipart parsing, as defined in RFC 2046.
Package multipart implements MIME multipart parsing, as defined in RFC 2046.
go/src/mime/quotedprintable
Package quotedprintable implements quoted-printable encoding as specified by RFC 2045.
Package quotedprintable implements quoted-printable encoding as specified by RFC 2045.
go/src/net
Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.
Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.
go/src/net/http
Package http provides HTTP client and server implementations.
Package http provides HTTP client and server implementations.
go/src/net/http/cgi
Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875.
Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875.
go/src/net/http/cookiejar
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
go/src/net/http/fcgi
Package fcgi implements the FastCGI protocol.
Package fcgi implements the FastCGI protocol.
go/src/net/http/httptest
Package httptest provides utilities for HTTP testing.
Package httptest provides utilities for HTTP testing.
go/src/net/http/httptrace
Package httptrace provides mechanisms to trace the events within HTTP client requests.
Package httptrace provides mechanisms to trace the events within HTTP client requests.
go/src/net/http/httputil
Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package.
Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package.
go/src/net/http/internal
Package internal contains HTTP internals shared by net/http and net/http/httputil.
Package internal contains HTTP internals shared by net/http and net/http/httputil.
go/src/net/http/pprof
Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
go/src/net/internal/socktest
Package socktest provides utilities for socket testing.
Package socktest provides utilities for socket testing.
go/src/net/mail
Package mail implements parsing of mail messages.
Package mail implements parsing of mail messages.
go/src/net/rpc
Package rpc provides access to the exported methods of an object across a network or other I/O connection.
Package rpc provides access to the exported methods of an object across a network or other I/O connection.
go/src/net/rpc/jsonrpc
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc package.
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc package.
go/src/net/smtp
Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
go/src/net/textproto
Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP.
Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP.
go/src/net/url
Package url parses URLs and implements query escaping.
Package url parses URLs and implements query escaping.
go/src/os
Package os provides a platform-independent interface to operating system functionality.
Package os provides a platform-independent interface to operating system functionality.
go/src/os/exec
Package exec runs external commands.
Package exec runs external commands.
go/src/os/signal
Package signal implements access to incoming signals.
Package signal implements access to incoming signals.
go/src/os/user
Package user allows user account lookups by name or id.
Package user allows user account lookups by name or id.
go/src/path
Package path implements utility routines for manipulating slash-separated paths.
Package path implements utility routines for manipulating slash-separated paths.
go/src/path/filepath
Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
go/src/reflect
Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types.
Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types.
go/src/regexp
Package regexp implements regular expression search.
Package regexp implements regular expression search.
go/src/regexp/syntax
Package syntax parses regular expressions into parse trees and compiles parse trees into programs.
Package syntax parses regular expressions into parse trees and compiles parse trees into programs.
go/src/runtime
Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines.
Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines.
go/src/runtime/cgo
Package cgo contains runtime support for code generated by the cgo tool.
Package cgo contains runtime support for code generated by the cgo tool.
go/src/runtime/debug
Package debug contains facilities for programs to debug themselves while they are running.
Package debug contains facilities for programs to debug themselves while they are running.
go/src/runtime/internal/sys
package sys contains system- and configuration- and architecture-specific constants used by the runtime.
package sys contains system- and configuration- and architecture-specific constants used by the runtime.
go/src/runtime/pprof
Package pprof writes runtime profiling data in the format expected by the pprof visualization tool.
Package pprof writes runtime profiling data in the format expected by the pprof visualization tool.
go/src/runtime/race
Package race implements data race detection logic.
Package race implements data race detection logic.
go/src/runtime/trace
Go execution tracer.
Go execution tracer.
go/src/sort
Package sort provides primitives for sorting slices and user-defined collections.
Package sort provides primitives for sorting slices and user-defined collections.
go/src/strconv
Package strconv implements conversions to and from string representations of basic data types.
Package strconv implements conversions to and from string representations of basic data types.
go/src/strings
Package strings implements simple functions to manipulate UTF-8 encoded strings.
Package strings implements simple functions to manipulate UTF-8 encoded strings.
go/src/sync
Package sync provides basic synchronization primitives such as mutual exclusion locks.
Package sync provides basic synchronization primitives such as mutual exclusion locks.
go/src/sync/atomic
Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms.
Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms.
go/src/syscall
Package syscall contains an interface to the low-level operating system primitives.
Package syscall contains an interface to the low-level operating system primitives.
go/src/testing
Package testing provides support for automated testing of Go packages.
Package testing provides support for automated testing of Go packages.
go/src/testing/iotest
Package iotest implements Readers and Writers useful mainly for testing.
Package iotest implements Readers and Writers useful mainly for testing.
go/src/testing/quick
Package quick implements utility functions to help with black box testing.
Package quick implements utility functions to help with black box testing.
go/src/text/scanner
Package scanner provides a scanner and tokenizer for UTF-8-encoded text.
Package scanner provides a scanner and tokenizer for UTF-8-encoded text.
go/src/text/tabwriter
Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
go/src/text/template
Package template implements data-driven templates for generating textual output.
Package template implements data-driven templates for generating textual output.
go/src/text/template/parse
Package parse builds parse trees for templates as defined by text/template and html/template.
Package parse builds parse trees for templates as defined by text/template and html/template.
go/src/time
Package time provides functionality for measuring and displaying time.
Package time provides functionality for measuring and displaying time.
go/src/unicode
Package unicode provides data and functions to test some properties of Unicode code points.
Package unicode provides data and functions to test some properties of Unicode code points.
go/src/unicode/utf16
Package utf16 implements encoding and decoding of UTF-16 sequences.
Package utf16 implements encoding and decoding of UTF-16 sequences.
go/src/unicode/utf8
Package utf8 implements functions and constants to support text encoded in UTF-8.
Package utf8 implements functions and constants to support text encoded in UTF-8.
go/src/unsafe
Package unsafe contains operations that step around the type safety of Go programs.
Package unsafe contains operations that step around the type safety of Go programs.
go/test/stress
The runstress tool stresses the runtime.
The runstress tool stresses the runtime.
examples
go1.5
doc/codewalk
Generating random text: a Markov chain algorithm
Generating random text: a Markov chain algorithm
doc/play
An implementation of Conway's Game of Life.
An implementation of Conway's Game of Life.
misc/android
Cleaner removes anything from /data/local/tmp/goroot not on a builtin list.
Cleaner removes anything from /data/local/tmp/goroot not on a builtin list.
misc/cgo/gmp
An example of wrapping a C library in Go.
An example of wrapping a C library in Go.
misc/cgo/test
Test that the #cgo CFLAGS directive works, with and without platform filters.
Test that the #cgo CFLAGS directive works, with and without platform filters.
misc/ios
This program can be used as go_darwin_arm_exec by the Go tool.
This program can be used as go_darwin_arm_exec by the Go tool.
misc/linkcheck
The linkcheck command finds missing links in the godoc website.
The linkcheck command finds missing links in the godoc website.
misc/nacl
Mkzip creates a zip file from a 'proto' file describing the contents.
Mkzip creates a zip file from a 'proto' file describing the contents.
pkg/bootstrap/src/bootstrap/asm/internal/asm
Package asm implements the parser and instruction generator for the assembler.
Package asm implements the parser and instruction generator for the assembler.
pkg/bootstrap/src/bootstrap/asm/internal/flags
Package flags implements top-level flags and the usage message for the assembler.
Package flags implements top-level flags and the usage message for the assembler.
pkg/bootstrap/src/bootstrap/asm/internal/lex
Package lex implements lexical analysis for the assembler.
Package lex implements lexical analysis for the assembler.
pkg/bootstrap/src/bootstrap/compile
Compile, typically invoked as “go tool compile,” compiles a single Go package comprising the files named on the command line.
Compile, typically invoked as “go tool compile,” compiles a single Go package comprising the files named on the command line.
pkg/bootstrap/src/bootstrap/compile/internal/big
Package big implements multi-precision arithmetic (big numbers).
Package big implements multi-precision arithmetic (big numbers).
pkg/bootstrap/src/bootstrap/internal/gcprog
Package gcprog implements an encoder for packed GC pointer bitmaps, known as GC programs.
Package gcprog implements an encoder for packed GC pointer bitmaps, known as GC programs.
pkg/bootstrap/src/bootstrap/link
Link, typically invoked as “go tool link,” reads the Go archive or object for a package main, along with its dependencies, and combines them into an executable binary.
Link, typically invoked as “go tool link,” reads the Go archive or object for a package main, along with its dependencies, and combines them into an executable binary.
src/archive/tar
Package tar implements access to tar archives.
Package tar implements access to tar archives.
src/archive/zip
Package zip provides support for reading and writing ZIP archives.
Package zip provides support for reading and writing ZIP archives.
src/bufio
Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O.
Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O.
src/builtin
Package builtin provides documentation for Go's predeclared identifiers.
Package builtin provides documentation for Go's predeclared identifiers.
src/bytes
Package bytes implements functions for the manipulation of byte slices.
Package bytes implements functions for the manipulation of byte slices.
src/cmd/addr2line
Addr2line is a minimal simulation of the GNU addr2line tool, just enough to support pprof.
Addr2line is a minimal simulation of the GNU addr2line tool, just enough to support pprof.
src/cmd/api
Binary api computes the exported API of a set of Go packages.
Binary api computes the exported API of a set of Go packages.
src/cmd/asm/internal/asm
Package asm implements the parser and instruction generator for the assembler.
Package asm implements the parser and instruction generator for the assembler.
src/cmd/asm/internal/flags
Package flags implements top-level flags and the usage message for the assembler.
Package flags implements top-level flags and the usage message for the assembler.
src/cmd/asm/internal/lex
Package lex implements lexical analysis for the assembler.
Package lex implements lexical analysis for the assembler.
src/cmd/cgo
Cgo enables the creation of Go packages that call C code.
Cgo enables the creation of Go packages that call C code.
src/cmd/compile
Compile, typically invoked as “go tool compile,” compiles a single Go package comprising the files named on the command line.
Compile, typically invoked as “go tool compile,” compiles a single Go package comprising the files named on the command line.
src/cmd/compile/internal/big
Package big implements multi-precision arithmetic (big numbers).
Package big implements multi-precision arithmetic (big numbers).
src/cmd/cover
Cover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
Cover is a program for analyzing the coverage profiles generated by 'go test -coverprofile=cover.out'.
src/cmd/doc
Doc (usually run as go doc) accepts zero, one or two arguments.
Doc (usually run as go doc) accepts zero, one or two arguments.
src/cmd/fix
Fix finds Go programs that use old APIs and rewrites them to use newer ones.
Fix finds Go programs that use old APIs and rewrites them to use newer ones.
src/cmd/go
Go is a tool for managing Go source code.
Go is a tool for managing Go source code.
src/cmd/gofmt
Gofmt formats Go programs.
Gofmt formats Go programs.
src/cmd/internal/gcprog
Package gcprog implements an encoder for packed GC pointer bitmaps, known as GC programs.
Package gcprog implements an encoder for packed GC pointer bitmaps, known as GC programs.
src/cmd/internal/goobj
Package goobj implements reading of Go object files and archives.
Package goobj implements reading of Go object files and archives.
src/cmd/internal/objfile
Package objfile implements portable access to OS-specific executable files.
Package objfile implements portable access to OS-specific executable files.
src/cmd/internal/rsc.io/x86/x86asm
Package x86asm implements decoding of x86 machine code.
Package x86asm implements decoding of x86 machine code.
src/cmd/link
Link, typically invoked as “go tool link,” reads the Go archive or object for a package main, along with its dependencies, and combines them into an executable binary.
Link, typically invoked as “go tool link,” reads the Go archive or object for a package main, along with its dependencies, and combines them into an executable binary.
src/cmd/nm
Nm lists the symbols defined or used by an object file, archive, or executable.
Nm lists the symbols defined or used by an object file, archive, or executable.
src/cmd/objdump
Objdump disassembles executable files.
Objdump disassembles executable files.
src/cmd/pack
Pack is a simple version of the traditional Unix ar tool.
Pack is a simple version of the traditional Unix ar tool.
src/cmd/pprof
Pprof interprets and displays profiles of Go programs.
Pprof interprets and displays profiles of Go programs.
src/cmd/pprof/internal/commands
Package commands defines and manages the basic pprof commands
Package commands defines and manages the basic pprof commands
src/cmd/pprof/internal/driver
Package driver implements the core pprof functionality.
Package driver implements the core pprof functionality.
src/cmd/pprof/internal/fetch
Package fetch provides an extensible mechanism to fetch a profile from a data source.
Package fetch provides an extensible mechanism to fetch a profile from a data source.
src/cmd/pprof/internal/plugin
Package plugin defines the plugin implementations that the main pprof driver requires.
Package plugin defines the plugin implementations that the main pprof driver requires.
src/cmd/pprof/internal/profile
Package profile provides a representation of profile.proto and methods to encode/decode profiles in this format.
Package profile provides a representation of profile.proto and methods to encode/decode profiles in this format.
src/cmd/pprof/internal/report
Package report summarizes a performance profile into a human-readable report.
Package report summarizes a performance profile into a human-readable report.
src/cmd/pprof/internal/svg
Package svg provides tools related to handling of SVG files
Package svg provides tools related to handling of SVG files
src/cmd/pprof/internal/symbolizer
Package symbolizer provides a routine to populate a profile with symbol, file and line number information.
Package symbolizer provides a routine to populate a profile with symbol, file and line number information.
src/cmd/pprof/internal/symbolz
Package symbolz symbolizes a profile using the output from the symbolz service.
Package symbolz symbolizes a profile using the output from the symbolz service.
src/cmd/pprof/internal/tempfile
Package tempfile provides tools to create and delete temporary files
Package tempfile provides tools to create and delete temporary files
src/cmd/trace
Trace is a tool for viewing trace files.
Trace is a tool for viewing trace files.
src/cmd/vet
Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.
Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.
src/cmd/vet/whitelist
Package whitelist defines exceptions for the vet tool.
Package whitelist defines exceptions for the vet tool.
src/cmd/yacc
Yacc is a version of yacc for Go.
Yacc is a version of yacc for Go.
src/compress/bzip2
Package bzip2 implements bzip2 decompression.
Package bzip2 implements bzip2 decompression.
src/compress/flate
Package flate implements the DEFLATE compressed data format, described in RFC 1951.
Package flate implements the DEFLATE compressed data format, described in RFC 1951.
src/compress/gzip
Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952.
Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952.
src/compress/lzw
Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19.
Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19.
src/compress/zlib
Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950.
Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950.
src/container/heap
Package heap provides heap operations for any type that implements heap.Interface.
Package heap provides heap operations for any type that implements heap.Interface.
src/container/list
Package list implements a doubly linked list.
Package list implements a doubly linked list.
src/container/ring
Package ring implements operations on circular lists.
Package ring implements operations on circular lists.
src/crypto
Package crypto collects common cryptographic constants.
Package crypto collects common cryptographic constants.
src/crypto/aes
Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
src/crypto/cipher
Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
src/crypto/des
Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
src/crypto/dsa
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
src/crypto/ecdsa
Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-3.
Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-3.
src/crypto/elliptic
Package elliptic implements several standard elliptic curves over prime fields.
Package elliptic implements several standard elliptic curves over prime fields.
src/crypto/hmac
Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
src/crypto/md5
Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
src/crypto/rand
Package rand implements a cryptographically secure pseudorandom number generator.
Package rand implements a cryptographically secure pseudorandom number generator.
src/crypto/rc4
Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
src/crypto/rsa
Package rsa implements RSA encryption as specified in PKCS#1.
Package rsa implements RSA encryption as specified in PKCS#1.
src/crypto/sha1
Package sha1 implements the SHA1 hash algorithm as defined in RFC 3174.
Package sha1 implements the SHA1 hash algorithm as defined in RFC 3174.
src/crypto/sha256
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
src/crypto/sha512
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
src/crypto/subtle
Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
src/crypto/tls
Package tls partially implements TLS 1.2, as specified in RFC 5246.
Package tls partially implements TLS 1.2, as specified in RFC 5246.
src/crypto/x509
Package x509 parses X.509-encoded keys and certificates.
Package x509 parses X.509-encoded keys and certificates.
src/crypto/x509/pkix
Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
src/database/sql
Package sql provides a generic interface around SQL (or SQL-like) databases.
Package sql provides a generic interface around SQL (or SQL-like) databases.
src/database/sql/driver
Package driver defines interfaces to be implemented by database drivers as used by package sql.
Package driver defines interfaces to be implemented by database drivers as used by package sql.
src/debug/dwarf
Package 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
Package 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
src/debug/elf
Package elf implements access to ELF object files.
Package elf implements access to ELF object files.
src/debug/gosym
Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers.
src/debug/macho
Package macho implements access to Mach-O object files.
Package macho implements access to Mach-O object files.
src/debug/pe
Package pe implements access to PE (Microsoft Windows Portable Executable) files.
Package pe implements access to PE (Microsoft Windows Portable Executable) files.
src/debug/plan9obj
Package plan9obj implements access to Plan 9 a.out object files.
Package plan9obj implements access to Plan 9 a.out object files.
src/encoding
Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
src/encoding/ascii85
Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats.
Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats.
src/encoding/asn1
Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
src/encoding/base32
Package base32 implements base32 encoding as specified by RFC 4648.
Package base32 implements base32 encoding as specified by RFC 4648.
src/encoding/base64
Package base64 implements base64 encoding as specified by RFC 4648.
Package base64 implements base64 encoding as specified by RFC 4648.
src/encoding/binary
Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints.
Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints.
src/encoding/csv
Package csv reads and writes comma-separated values (CSV) files.
Package csv reads and writes comma-separated values (CSV) files.
src/encoding/gob
Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver).
Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver).
src/encoding/hex
Package hex implements hexadecimal encoding and decoding.
Package hex implements hexadecimal encoding and decoding.
src/encoding/json
Package json implements encoding and decoding of JSON objects as defined in RFC 4627.
Package json implements encoding and decoding of JSON objects as defined in RFC 4627.
src/encoding/pem
Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail.
Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail.
src/encoding/xml
Package xml implements a simple XML 1.0 parser that understands XML name spaces.
Package xml implements a simple XML 1.0 parser that understands XML name spaces.
src/errors
Package errors implements functions to manipulate errors.
Package errors implements functions to manipulate errors.
src/expvar
Package expvar provides a standardized interface to public variables, such as operation counters in servers.
Package expvar provides a standardized interface to public variables, such as operation counters in servers.
src/flag
Package flag implements command-line flag parsing.
Package flag implements command-line flag parsing.
src/fmt
Package fmt implements formatted I/O with functions analogous to C's printf and scanf.
Package fmt implements formatted I/O with functions analogous to C's printf and scanf.
src/go/ast
Package ast declares the types used to represent syntax trees for Go packages.
Package ast declares the types used to represent syntax trees for Go packages.
src/go/build
Package build gathers information about Go packages.
Package build gathers information about Go packages.
src/go/constant
Package constant implements Values representing untyped Go constants and the corresponding operations.
Package constant implements Values representing untyped Go constants and the corresponding operations.
src/go/doc
Package doc extracts source code documentation from a Go AST.
Package doc extracts source code documentation from a Go AST.
src/go/format
Package format implements standard formatting of Go source.
Package format implements standard formatting of Go source.
src/go/importer
Package importer provides access to export data importers.
Package importer provides access to export data importers.
src/go/internal/gccgoimporter
Package gccgoimporter implements Import for gccgo-generated object files.
Package gccgoimporter implements Import for gccgo-generated object files.
src/go/internal/gcimporter
Package gcimporter implements Import for gc-generated object files.
Package gcimporter implements Import for gc-generated object files.
src/go/parser
Package parser implements a parser for Go source files.
Package parser implements a parser for Go source files.
src/go/printer
Package printer implements printing of AST nodes.
Package printer implements printing of AST nodes.
src/go/scanner
Package scanner implements a scanner for Go source text.
Package scanner implements a scanner for Go source text.
src/go/token
Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates).
Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates).
src/go/types
Package types declares the data types and implements the algorithms for type-checking of Go packages.
Package types declares the data types and implements the algorithms for type-checking of Go packages.
src/hash
Package hash provides interfaces for hash functions.
Package hash provides interfaces for hash functions.
src/hash/adler32
Package adler32 implements the Adler-32 checksum.
Package adler32 implements the Adler-32 checksum.
src/hash/crc32
Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
src/hash/crc64
Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum.
Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum.
src/hash/fnv
Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo.
Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo.
src/html
Package html provides functions for escaping and unescaping HTML text.
Package html provides functions for escaping and unescaping HTML text.
src/html/template
Package template (html/template) implements data-driven templates for generating HTML output safe against code injection.
Package template (html/template) implements data-driven templates for generating HTML output safe against code injection.
src/image
Package image implements a basic 2-D image library.
Package image implements a basic 2-D image library.
src/image/color
Package color implements a basic color library.
Package color implements a basic color library.
src/image/color/palette
Package palette provides standard color palettes.
Package palette provides standard color palettes.
src/image/draw
Package draw provides image composition functions.
Package draw provides image composition functions.
src/image/gif
Package gif implements a GIF image decoder and encoder.
Package gif implements a GIF image decoder and encoder.
src/image/internal/imageutil
Package imageutil contains code shared by image-related packages.
Package imageutil contains code shared by image-related packages.
src/image/jpeg
Package jpeg implements a JPEG image decoder and encoder.
Package jpeg implements a JPEG image decoder and encoder.
src/image/png
Package png implements a PNG image decoder and encoder.
Package png implements a PNG image decoder and encoder.
src/index/suffixarray
Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.
Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.
src/internal/singleflight
Package singleflight provides a duplicate function call suppression mechanism.
Package singleflight provides a duplicate function call suppression mechanism.
src/internal/syscall/windows/registry
Package registry provides access to the Windows registry.
Package registry provides access to the Windows registry.
src/internal/testenv
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
src/io
Package io provides basic interfaces to I/O primitives.
Package io provides basic interfaces to I/O primitives.
src/io/ioutil
Package ioutil implements some I/O utility functions.
Package ioutil implements some I/O utility functions.
src/log
Package log implements a simple logging package.
Package log implements a simple logging package.
src/log/syslog
Package syslog provides a simple interface to the system log service.
Package syslog provides a simple interface to the system log service.
src/math
Package math provides basic constants and mathematical functions.
Package math provides basic constants and mathematical functions.
src/math/big
Package big implements multi-precision arithmetic (big numbers).
Package big implements multi-precision arithmetic (big numbers).
src/math/cmplx
Package cmplx provides basic constants and mathematical functions for complex numbers.
Package cmplx provides basic constants and mathematical functions for complex numbers.
src/math/rand
Package rand implements pseudo-random number generators.
Package rand implements pseudo-random number generators.
src/mime
Package mime implements parts of the MIME spec.
Package mime implements parts of the MIME spec.
src/mime/multipart
Package multipart implements MIME multipart parsing, as defined in RFC 2046.
Package multipart implements MIME multipart parsing, as defined in RFC 2046.
src/mime/quotedprintable
Package quotedprintable implements quoted-printable encoding as specified by RFC 2045.
Package quotedprintable implements quoted-printable encoding as specified by RFC 2045.
src/net
Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.
Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.
src/net/http
Package http provides HTTP client and server implementations.
Package http provides HTTP client and server implementations.
src/net/http/cgi
Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875.
Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875.
src/net/http/cookiejar
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
src/net/http/fcgi
Package fcgi implements the FastCGI protocol.
Package fcgi implements the FastCGI protocol.
src/net/http/httptest
Package httptest provides utilities for HTTP testing.
Package httptest provides utilities for HTTP testing.
src/net/http/httputil
Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package.
Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package.
src/net/http/internal
Package internal contains HTTP internals shared by net/http and net/http/httputil.
Package internal contains HTTP internals shared by net/http and net/http/httputil.
src/net/http/pprof
Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
src/net/internal/socktest
Package socktest provides utilities for socket testing.
Package socktest provides utilities for socket testing.
src/net/mail
Package mail implements parsing of mail messages.
Package mail implements parsing of mail messages.
src/net/rpc
Package rpc provides access to the exported methods of an object across a network or other I/O connection.
Package rpc provides access to the exported methods of an object across a network or other I/O connection.
src/net/rpc/jsonrpc
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc package.
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc package.
src/net/smtp
Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
src/net/textproto
Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP.
Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP.
src/net/url
Package url parses URLs and implements query escaping.
Package url parses URLs and implements query escaping.
src/os
Package os provides a platform-independent interface to operating system functionality.
Package os provides a platform-independent interface to operating system functionality.
src/os/exec
Package exec runs external commands.
Package exec runs external commands.
src/os/signal
Package signal implements access to incoming signals.
Package signal implements access to incoming signals.
src/os/user
Package user allows user account lookups by name or id.
Package user allows user account lookups by name or id.
src/path
Package path implements utility routines for manipulating slash-separated paths.
Package path implements utility routines for manipulating slash-separated paths.
src/path/filepath
Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.
src/reflect
Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types.
Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types.
src/regexp
Package regexp implements regular expression search.
Package regexp implements regular expression search.
src/regexp/syntax
Package syntax parses regular expressions into parse trees and compiles parse trees into programs.
Package syntax parses regular expressions into parse trees and compiles parse trees into programs.
src/runtime
Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines.
Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines.
src/runtime/cgo
Package cgo contains runtime support for code generated by the cgo tool.
Package cgo contains runtime support for code generated by the cgo tool.
src/runtime/debug
Package debug contains facilities for programs to debug themselves while they are running.
Package debug contains facilities for programs to debug themselves while they are running.
src/runtime/pprof
Package pprof writes runtime profiling data in the format expected by the pprof visualization tool.
Package pprof writes runtime profiling data in the format expected by the pprof visualization tool.
src/runtime/race
Package race implements data race detection logic.
Package race implements data race detection logic.
src/runtime/trace
Go execution tracer.
Go execution tracer.
src/sort
Package sort provides primitives for sorting slices and user-defined collections.
Package sort provides primitives for sorting slices and user-defined collections.
src/strconv
Package strconv implements conversions to and from string representations of basic data types.
Package strconv implements conversions to and from string representations of basic data types.
src/strings
Package strings implements simple functions to manipulate UTF-8 encoded strings.
Package strings implements simple functions to manipulate UTF-8 encoded strings.
src/sync
Package sync provides basic synchronization primitives such as mutual exclusion locks.
Package sync provides basic synchronization primitives such as mutual exclusion locks.
src/sync/atomic
Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms.
Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms.
src/syscall
Package syscall contains an interface to the low-level operating system primitives.
Package syscall contains an interface to the low-level operating system primitives.
src/testing
Package testing provides support for automated testing of Go packages.
Package testing provides support for automated testing of Go packages.
src/testing/iotest
Package iotest implements Readers and Writers useful mainly for testing.
Package iotest implements Readers and Writers useful mainly for testing.
src/testing/quick
Package quick implements utility functions to help with black box testing.
Package quick implements utility functions to help with black box testing.
src/text/scanner
Package scanner provides a scanner and tokenizer for UTF-8-encoded text.
Package scanner provides a scanner and tokenizer for UTF-8-encoded text.
src/text/tabwriter
Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
src/text/template
Package template implements data-driven templates for generating textual output.
Package template implements data-driven templates for generating textual output.
src/text/template/parse
Package parse builds parse trees for templates as defined by text/template and html/template.
Package parse builds parse trees for templates as defined by text/template and html/template.
src/time
Package time provides functionality for measuring and displaying time.
Package time provides functionality for measuring and displaying time.
src/unicode
Package unicode provides data and functions to test some properties of Unicode code points.
Package unicode provides data and functions to test some properties of Unicode code points.
src/unicode/utf16
Package utf16 implements encoding and decoding of UTF-16 sequences.
Package utf16 implements encoding and decoding of UTF-16 sequences.
src/unicode/utf8
Package utf8 implements functions and constants to support text encoded in UTF-8.
Package utf8 implements functions and constants to support text encoded in UTF-8.
src/unsafe
Package unsafe contains operations that step around the type safety of Go programs.
Package unsafe contains operations that step around the type safety of Go programs.
test/stress
The runstress tool stresses the runtime.
The runstress tool stresses the runtime.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL