# 库
## 子目录
+ [标准库](#stdlib)
+ [其它包](#other)
+ [子代码库](#subrepo)
+ [社区](#community)
## 标准库
![](./index_files/pkg.png)
| 名称 | 摘要 |
| --- | --- | --- |
| [archive](#archive) |
| [tar](./pkg/archive_tar.htm) | tar包实现了tar格式压缩文件的存取. |
| [zip](./pkg/archive_zip.htm) | zip包提供了zip档案文件的读写服务. |
| [bufio](./pkg/bufio.htm) | bufio 包实现了带缓存的I/O操作. |
| [builtin](./pkg/builtin.htm) | builtin 包为Go的预声明标识符提供了文档. |
| [bytes](./pkg/bytes.htm) | bytes包实现了操作[]byte的常用函数. |
| [compress](#compress) |
| [bzip2](./pkg/compress_bzip2.htm) | bzip2包实现bzip2的解压缩. |
| [flate](./pkg/compress_flate.htm) | flate包实现了deflate压缩数据格式,参见RFC 1951. |
| [gzip](./pkg/compress_gzip.htm) | gzip包实现了gzip格式压缩文件的读写,参见RFC 1952. |
| [lzw](./pkg/compress_lzw.htm) | lzw包实现了Lempel-Ziv-Welch数据压缩格式,这是一种T. A. Welch在“A Technique for High-Performance Data Compression”一文(Computer, 17(6) (June 1984), pp 8-19)提出的一种压缩格式. |
| [zlib](./pkg/compress_zlib.htm) | zlib包实现了对zlib格式压缩数据的读写,参见RFC 1950. |
| [container](#container) |
| [heap](./pkg/container_heap.htm) | heap包提供了对任意类型(实现了heap.Interface接口)的堆操作. |
| [list](./pkg/container_list.htm) | list包实现了双向链表. |
| [ring](./pkg/container_ring.htm) | ring实现了环形链表的操作. |
| [crypto](./pkg/crypto.htm) | crypto包搜集了常用的密码(算法)常量. |
| [aes](./pkg/crypto_aes.htm) | aes包实现了AES加密算法,参见U.S. Federal Information Processing Standards Publication 197. |
| [cipher](./pkg/crypto_cipher.htm) | cipher包实现了多个标准的用于包装底层块加密算法的加密算法实现. |
| [des](./pkg/crypto_des.htm) | des包实现了DES标准和TDEA算法,参见U.S. Federal Information Processing Standards Publication 46-3. |
| [dsa](./pkg/crypto_dsa.htm) | dsa包实现FIPS 186-3定义的数字签名算法(Digital Signature Algorithm),即DSA算法. |
| [ecdsa](./pkg/crypto_ecdsa.htm) | ecdsa包实现了椭圆曲线数字签名算法,参见FIPS 186-3. |
| [elliptic](./pkg/crypto_elliptic.htm) | elliptic包实现了几条覆盖素数有限域的标准椭圆曲线. |
| [hmac](./pkg/crypto_hmac.htm) | hmac包实现了U.S. Federal Information Processing Standards Publication 198规定的HMAC(加密哈希信息认证码). |
| [md5](./pkg/crypto_md5.htm) | md5包实现了MD5哈希算法,参见RFC 1321. |
| [rand](./pkg/crypto_rand.htm) | rand包实现了用于加解密的更安全的随机数生成器. |
| [rc4](./pkg/crypto_rc4.htm) | rc4包实现了RC4加密算法,参见Bruce Schneier's Applied Cryptography. |
| [rsa](./pkg/crypto_rsa.htm) | rsa包实现了PKCS#1规定的RSA加密算法. |
| [sha1](./pkg/crypto_sha1.htm) | sha1包实现了SHA1哈希算法,参见RFC 3174. |
| [sha256](./pkg/crypto_sha256.htm) | sha256包实现了SHA224和SHA256哈希算法,参见FIPS 180-4. |
| [sha512](./pkg/crypto_sha512.htm) | sha512包实现了SHA384和SHA512哈希算法,参见FIPS 180-2. |
| [subtle](./pkg/crypto_subtle.htm) | Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly. |
| [tls](./pkg/crypto_tls.htm) | tls包实现了TLS 1.2,细节参见RFC 5246. |
| [x509](./pkg/crypto_x509.htm) | x509包解析X.509编码的证书和密钥. |
| [pkix](./pkg/crypto_x509_pkix.htm) | pkix包提供了共享的、低层次的结构体,用于ASN.1解析和X.509证书、CRL、OCSP的序列化. |
| [database](#database) |
| [sql](./pkg/database_sql.htm) | sql 包提供了通用的SQL(或类SQL)数据库接口. |
| [driver](./pkg/database_sql_driver.htm) | driver包定义了应被数据库驱动实现的接口,这些接口会被sql包使用. |
| [debug](#debug) |
| [dwarf](./pkg/debug_dwarf.htm) | 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 |
| [elf](./pkg/debug_elf.htm) | Package elf implements access to ELF object files. |
| [gosym](./pkg/debug_gosym.htm) | Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers. |
| [macho](./pkg/debug_macho.htm) | Package macho implements access to Mach-O object files. |
| [pe](./pkg/debug_pe.htm) | Package pe implements access to PE (Microsoft Windows Portable Executable) files. |
| [plan9obj](./pkg/debug_plan9obj.htm) | Package plan9obj implements access to Plan 9 a.out object files. |
| [encoding](./pkg/encoding.htm) | encoding包定义了供其它包使用的可以将数据在字节水平和文本表示之间转换的接口. |
| [ascii85](./pkg/encoding_ascii85.htm) | ascii85 包是对 ascii85 的数据编码的实现. |
| [asn1](./pkg/encoding_asn1.htm) | asn1包实现了DER编码的ASN.1数据结构的解析,参见ITU-T Rec X.690. |
| [base32](./pkg/encoding_base32.htm) | base32包实现了RFC 4648规定的base32编码. |
| [base64](./pkg/encoding_base64.htm) | base64实现了RFC 4648规定的base64编码. |
| [binary](./pkg/encoding_binary.htm) | binary包实现了简单的数字与字节序列的转换以及变长值的编解码. |
| [csv](./pkg/encoding_csv.htm) | csv读写逗号分隔值(csv)的文件. |
| [gob](./pkg/encoding_gob.htm) | gob包管理gob流——在编码器(发送器)和解码器(接受器)之间交换的binary值. |
| [hex](./pkg/encoding_hex.htm) | hex包实现了16进制字符表示的编解码. |
| [json](./pkg/encoding_json.htm) | json包实现了json对象的编解码,参见RFC 4627. |
| [pem](./pkg/encoding_pem.htm) | pem包实现了PEM数据编码(源自保密增强邮件协议). |
| [xml](./pkg/encoding_xml.htm) | Package xml implements a simple XML 1.0 parser that understands XML name spaces. |
| [errors](./pkg/errors.htm) | error 包实现了用于错误处理的函数. |
| [expvar](./pkg/expvar.htm) | expvar包提供了公共变量的标准接口,如服务的操作计数器. |
| [flag](./pkg/flag.htm) | flag 包实现命令行标签解析. |
| [fmt](./pkg/fmt.htm) | fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. |
| [go](#go) |
| [ast](./pkg/go_ast.htm) | Package ast declares the types used to represent syntax trees for Go packages. |
| [build](./pkg/go_build.htm) | Package build gathers information about Go packages. |
| [doc](./pkg/go_doc.htm) | Package doc extracts source code documentation from a Go AST. |
| [format](./pkg/go_format.htm) | Package format implements standard formatting of Go source. |
| [parser](./pkg/go_parser.htm) | Package parser implements a parser for Go source files. |
| [printer](./pkg/go_printer.htm) | Package printer implements printing of AST nodes. |
| [scanner](./pkg/go_scanner.htm) | Package scanner implements a scanner for Go source text. |
| [token](./pkg/go_token.htm) | Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates). |
| [hash](#hash) | hash包提供hash函数的接口. |
| [adler32](./pkg/hash_adler32.htm) | adler32包实现了Adler-32校验和算法,参见RFC 1950. |
| [crc32](./pkg/hash_crc32.htm) | crc32包实现了32位循环冗余校验(CRC-32)的校验和算法. |
| [crc64](./pkg/hash_crc64.htm) | Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum. |
| [fnv](./pkg/hash_fnv.htm) | fnv包实现了FNV-1和FNV-1a(非加密hash函数). |
| [html](./pkg/html.htm) | html包提供了用于转义和解转义HTML文本的函数. |
| [template](./pkg/html_template.htm) | template包(html/template)实现了数据驱动的模板,用于生成可对抗代码注入的安全HTML输出. |
| [image](./pkg/image.htm) | image实现了基本的2D图片库. |
| [color](./pkg/image_color.htm) | color 包实现了基本的颜色库。 |
| [palette](./pkg/image_color_palette.htm) | palette包提供了标准的调色板. |
| [draw](./pkg/image_draw.htm) | draw 包提供组装图片的方法. |
| [gif](./pkg/image_gif.htm) | gif 包实现了GIF图片的解码. |
| [jpeg](./pkg/image_jpeg.htm) | jpeg包实现了jpeg格式图像的编解码. |
| [png](./pkg/image_png.htm) | png 包实现了PNG图像的编码和解码. |
| [index](#index) |
| [suffixarray](./pkg/index_suffixarray.htm) | suffixarrayb包通过使用内存中的后缀树实现了对数级时间消耗的子字符串搜索. |
| [io](./pkg/io.htm) | io 包为I/O原语提供了基础的接口. |
| [ioutil](./pkg/io_ioutil.htm) | ioutil 实现了一些I/O的工具函数。 |
| [log](./pkg/log.htm) | log包实现了简单的日志服务. |
| [syslog](./pkg/log_syslog.htm) | syslog包提供一个简单的系统日志服务的接口. |
| [math](./pkg/math.htm) | math 包提供了基本常数和数学函数。 |
| [big](./pkg/math_big.htm) | big 包实现了(大数的)高精度运算. |
| [cmplx](./pkg/math_cmplx.htm) | cmplx 包为复数提供了基本的常量和数学函数. |
| [rand](./pkg/math_rand.htm) | rand 包实现了伪随机数生成器. |
| [mime](./pkg/mime.htm) | mime实现了MIME的部分规定. |
| [multipart](./pkg/mime_multipart.htm) | multipart实现了MIME的multipart解析,参见RFC 2046. |
| [net](./pkg/net.htm) | net包提供了可移植的网络I/O接口,包括TCP/IP、UDP、域名解析和Unix域socket. |
| [http](./pkg/net_http.htm) | http包提供了HTTP客户端和服务端的实现. |
| [cgi](./pkg/net_http_cgi.htm) | cgi 包实现了RFC3875协议描述的CGI(公共网关接口). |
| [cookiejar](./pkg/net_http_cookiejar.htm) | cookiejar包实现了保管在内存中的符合RFC 6265标准的http.CookieJar接口. |
| [fcgi](./pkg/net_http_fcgi.htm) | fcgi 包实现了FastCGI协议. |
| [httptest](./pkg/net_http_httptest.htm) | httptest 包提供HTTP测试的单元工具. |
| [httputil](./pkg/net_http_httputil.htm) | httputil包提供了HTTP公用函数,是对net/http包的更常见函数的补充. |
| [pprof](./pkg/net_http_pprof.htm) | pprof 包通过提供HTTP服务返回runtime的统计数据,这个数据是以pprof可视化工具规定的返回格式返回的. |
| [mail](./pkg/net_mail.htm) | mail 包实现了解析邮件消息的功能. |
| [rpc](./pkg/net_rpc.htm) | rpc 包提供了一个方法来通过网络或者其他的I/O连接进入对象的外部方法. |
| [jsonrpc](./pkg/net_rpc_jsonrpc.htm) | jsonrpc 包使用了rpc的包实现了一个JSON-RPC的客户端解码器和服务端的解码器. |
| [smtp](./pkg/net_smtp.htm) | smtp包实现了简单邮件传输协议(SMTP),参见RFC 5321. |
| [textproto](./pkg/net_textproto.htm) | textproto实现了对基于文本的请求/回复协议的一般性支持,包括HTTP、NNTP和SMTP. |
| [url](./pkg/net_url.htm) | url包解析URL并实现了查询的逸码,参见RFC 3986. |
| [os](./pkg/os.htm) | os包提供了操作系统函数的不依赖平台的接口. |
| [exec](./pkg/os_exec.htm) | exec包执行外部命令. |
| [signal](./pkg/os_signal.htm) | signal包实现了对输入信号的访问. |
| [user](./pkg/os_user.htm) | user包允许通过名称或ID查询用户帐户. |
| [path](./pkg/path.htm) | path实现了对斜杠分隔的路径的实用操作函数. |
| [filepath](./pkg/path_filepath.htm) | filepath包实现了兼容各操作系统的文件路径的实用操作函数. |
| [reflect](./pkg/reflect.htm) | reflect包实现了运行时反射,允许程序操作任意类型的对象. |
| [regexp](./pkg/regexp.htm) | regexp包实现了正则表达式搜索. |
| [syntax](./pkg/regexp_syntax.htm) | Package syntax parses regular expressions into parse trees and compiles parse trees into programs. |
| [runtime](./pkg/runtime.htm) | TODO(osc): 需更新 runtime 包含与Go的运行时系统进行交互的操作,例如用于控制Go程的函数. |
| [cgo](./pkg/runtime_cgo.htm) | cgo 包含有 cgo 工具生成的代码的运行时支持. |
| [debug](./pkg/runtime_debug.htm) | debug 包含有程序在运行时调试其自身的功能. |
| [pprof](./pkg/runtime_pprof.htm) | pprof 包按照可视化工具 pprof 所要求的格式写出运行时分析数据. |
| [race](./pkg/runtime_race.htm) | race 包实现了数据竞争检测逻辑. |
| [sort](./pkg/sort.htm) | sort 包为切片及用户定义的集合的排序操作提供了原语. |
| [strconv](./pkg/strconv.htm) | strconv包实现了基本数据类型和其字符串表示的相互转换. |
| [strings](./pkg/strings.htm) | strings包实现了用于操作字符的简单函数. |
| [sync](./pkg/sync.htm) | sync 包提供了互斥锁这类的基本的同步原语. |
| [atomic](./pkg/sync_atomic.htm) | atomic 包提供了底层的原子性内存原语,这对于同步算法的实现很有用. |
| [syscall](http://docs.studygolang.com/pkg/syscall/) | Package syscall contains an interface to the low-level operating system primitives. |
| [testing](./pkg/testing.htm) | Package testing provides support for automated testing of Go packages. |
| [iotest](./pkg/testing_iotest.htm) | Package iotest implements Readers and Writers useful mainly for testing. |
| [quick](./pkg/testing_quick.htm) | Package quick implements utility functions to help with black box testing. |
| [text](#text) |
| [scanner](./pkg/text_scanner.htm) | scanner包提供对utf-8文本的token扫描服务. |
| [tabwriter](./pkg/text_tabwriter.htm) | tabwriter包实现了写入过滤器(tabwriter.Writer),可以将输入的缩进修正为正确的对齐文本. |
| [template](./pkg/text_template.htm) | template包实现了数据驱动的用于生成文本输出的模板. |
| [parse](./pkg/text_template_parse.htm) | Package parse builds parse trees for templates as defined by text/template and html/template. |
| [time](./pkg/time.htm) | time包提供了时间的显示和测量用的函数. |
| [unicode](./pkg/unicode.htm) | unicode 包提供了一些测试Unicode码点属性的数据和函数. |
| [utf16](./pkg/unicode_utf16.htm) | utf16 包实现了对UTF-16序列的编码和解码。 |
| [utf8](./pkg/unicode_utf8.htm) | utf8 包实现了支持UTF-8文本编码的函数和常量. |
| [unsafe](./pkg/unsafe.htm) | unsafe 包含有关于Go程序类型安全的所有操作. |
## 其它包
### 子代码库
这些包是 Go 项目的一部分,但并未在主源码树中。它们在比 Go 核心库更加宽松的[兼容性需求](/doc/go1compat)下开发。 可通过“[go get](/cmd/go/#hdr-Download_and_install_packages_and_dependencies)”安装它们,子代码库的[文档](http://godoc.org/-/subrepo)和[源码](https://github.com/golang)可通过相应的链接访问
* [crypto](https://github.com/golang/crypto) — 附加的加密包。
* [image](https://github.com/golang/image) — 附加的图像包。
* [net](https://github.com/golang/net) — 附加的网络包。
* [sys](https://github.com/golang/sys) — 系统调用包。
* [text](https://github.com/golang/text) — 文本处理包。
* [tools](https://github.com/golang/tools) — godoc、vet、cover 及其它工具。
* [exp](https://github.com/golang/exp) — 实验性代码(可能不经警告就更改,请小心对待)。
### 社区
这些服务可帮你寻找社区提供的开源包。
* [GoDoc](http://godoc.org/) - 包索引与搜索引擎。
* [Go 搜索](http://go-search.org/) - 代码搜索引擎。
* [Go 维基上的项目](https://github.com/golang/go/wiki/Projects) - Go 项目策划列表
- 库
- package achive
- package tar
- package zip
- package bufio
- package builtin
- package bytes
- package compress
- package bzip2
- package flate
- package gzip
- package lzw
- package zlib
- package container
- package heap
- package list
- package ring
- package crypto
- package aes
- package cipher
- package des
- package dsa
- package ecdsa
- package elliptic
- package hmac
- package md5
- package rand
- package rc4
- package rsa
- package sha1
- package sha256
- package sha512
- package subtle
- package tls
- package x509
- package pkix
- package database
- package sql
- package driver
- package encoding
- package ascii85
- package asn1
- package base32
- package base64
- package binary
- package csv
- package gob
- package hex
- package json
- package pem
- package xml
- package errors
- package expvar
- package flag
- package fmt
- package go
- package doc
- package format
- package parser
- package printer
- package hash
- package adler32
- package crc32
- package crc64
- package fnv
- package html
- package template
- package image
- package color
- package palette
- package draw
- package gif
- package jpeg
- package png
- package index
- package suffixarray
- package io
- package ioutil
- package log
- package syslog
- package math
- package big
- package cmplx
- package rand
- package mime
- package multipart
- package net
- package http
- package cgi
- package cookiejar
- package fcgi
- package httptest
- package httputil
- package pprof
- package mail
- package rpc
- package jsonrpc
- package smtp
- package textproto
- package url
- package os
- package exec
- package signal
- package user
- package path
- package filepath
- package reflect
- package regexp
- package runtime
- package cgo
- package debug
- package pprof
- package race
- package sort
- package strconv
- package strings
- package sync
- package atomic
- package text
- package scanner
- package tabwriter
- package template
- package time
- package unicode
- package utf16
- package utf8
- package unsafe