Go语言从入门到规范-6.1、Go常用包
1、标准库
名称 | 层级 | 摘要 |
---|---|---|
archive | 1 | |
tar | 2 | tar包实现了tar格式压缩文件的存取. |
zip | 2 | zip包提供了zip档案文件的读写服务. |
bufio | 1 | bufio 包实现了带缓存的I/O操作. |
builtin | 1 | builtin 包为Go的预声明标识符提供了文档. |
bytes | 1 | bytes包提供了操作byte切片的函数 |
compress | 1 | |
bzip2 | 2 | bzip2包实现了bzip2格式解压缩相关函数 |
flate | 2 | flate包提供了RFC 1951中描述的DEFLATE压缩数据格式的相关函数 |
gzip | 2 | gzip包实现了读写gzip格式的压缩文件,这是RFC 1952规定的。 |
lzw | 2 | Package lzw实现了Lempel-Ziv-Welch压缩数据格式,描述在T. A. Welch,“高性能数据压缩技术”,计算机,17(6)(1984年6月),pp 8-19。 |
zlib | 2 | 包zlib实现读取和写入zlib格式的压缩数据,在rfc1950中指定。 |
container | 1 | |
heap | 2 | 包heap为任何实现了heap. interface的类型提供堆操作。 |
list | 2 | 包list实现了一个双向链接列表。 |
ring | 2 | 包ring实现循环列表上的操作。 |
crypto | 2 | Package crypto收集常用的密码常量。 |
aes | 2 | Package aes实现了美国联邦信息处理标准197出版物中定义的aes加密(以前Rijndael)。 |
cipher | 2 | 包cipher实现了标准的块密码模式,可以包装在低级block cipher实现。 |
des | 2 | Package des实现了美国联邦信息处理标准出版物46-3中定义的数据加密标准des和三重数据加密算法TDEA。 |
dsa | 2 | 数据包dsa实现了FIPS 186-3中定义的数字签名算法。 |
ecdsa | 2 | 包ecdsa实现了FIPS 186-3中定义的椭圆曲线数字签名算法。 |
elliptic | 2 | Package elliptic在素数域上实现了几个标准椭圆曲线。 |
hmac | 2 | Package hmac实现了美国联邦信息处理标准198出版物中定义的键控哈希消息认证码(hmac)。 |
md5 | 2 | md5 包实现了在 RFC 1321 中定义的 MD5 哈希算法. |
rand | 2 | Package rand实现了一个加密安全的伪随机数生成器。 |
rc4 | 2 | 包rc4实现了Bruce Schneier的应用密码学中定义的rc4加密。 |
rsa | 2 | Package rsa实现了在PKCS#1中指定的rsa加密。 |
sha1 | 2 | 包sha1实现了RFC 3174中定义的sha1哈希算法。 |
sha256 | 2 | sha256包实现了FIPS 180-4中定义的SHA224和sha256哈希算法。 |
sha512 | 2 | sha512包采用FIPS 180-2中定义的SHA384和sha512哈希算法。 |
subtle | 2 | Package subtle实现的函数通常在加密代码中很有用,但需要仔细考虑才能正确使用。 |
tls | 2 | Package tls部分实现了rfc5246中规定的tls 1.2。 |
x509 | 2 | Package x509解析x .509编码的密钥和证书。 |
pkix | 3 | pkix包包含共享的低层结构,用于对X.509证书、CRL和OCSP进行ASN.1解析和序列化。 |
database | 1 | |
sql | 2 | sql 包提供了通用的SQL(或类SQL)数据库接口. |
driver | 3 | 包driver定义由包sql使用的数据库驱动程序实现的接口。 |
debug | 1 | |
dwarf | 2 | Package dwarf提供对从可执行文件加载的dwarf调试信息的访问,这在http://dwarfstd.org/doc/dwarf-2.0.0.pdf上的dwarf 2.0标准中有定义 |
elf | 2 | Package elf实现对elf对象文件的访问。 |
gosym | 2 | 包gosym实现了对gc编译器生成的Go二进制文件中嵌入的Go符号和行号表的访问。 |
macho | 2 | Package macho实现了对Mach-O对象文件的访问。 |
pe | 2 | Package pe实现对pe (Microsoft Windows Portable Executable)文件的访问。 |
plan9obj | 2 | 包plan9obj实现了对计划9a .out对象文件的访问。 |
encoding | 1 | 包encoding定义了其他包共享的接口,这些接口在字节级和文本表示之间转换数据。 |
ascii85 | 2 | ascii85 包是对 ascii85 的数据编码的实现. |
asn1 | 2 | 包asn1实现了在ITU-T Rec X.690中定义的der编码的ASN.1数据结构的解析。 |
base32 | 2 | 包base32实现了由RFC 4648指定的base32编码。 |
base64 | 2 | 包base64实现了由RFC 4648指定的base64编码。 |
binary | 2 | 包binary实现了数字和字节序列之间的简单转换以及变量的编码和解码。 |
csv | 2 | Package csv读写csv(逗号分隔值)文件。 |
gob | 2 | 包gob管理gob流——在编码器(发送器)和解码器(接收器)之间交换的二进制值。 |
hex | 2 | Package hex实现十六进制编码和解码。 |
json | 2 | Package json实现了RFC 4627中定义的json对象的编码和解码。 |
pem | 2 | 包pem实现pem数据编码,它起源于隐私增强邮件。 |
xml | 2 | Package xml实现了一个简单的xml 1.0解析器,它可以理解xml名称空间。 |
errors | 1 | error 包实现了用于错误处理的函数. |
expvar | 1 | Package expvar为公共变量提供了一个标准化的接口,比如服务器中的操作计数器。 |
flag | 1 | flag 包实现命令行标签解析. |
fmt | 1 | fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. |
go | 1 | |
ast | 2 | 包ast声明了用于表示Go包语法树的类型。 |
build | 2 | 包build收集关于Go包的信息。 |
doc | 2 | Package doc从Go AST中提取源代码文档。 |
format | 2 | 包格式实现了Go源代码的标准格式。 |
parser | 2 | Package parser为Go源文件实现了一个解析器。 |
printer | 2 | 包printer实现打印AST节点。 |
scanner | 2 | 包扫描器实现了一个扫描器的Go源文本。 |
token | 2 | Package token定义了表示Go编程语言的词法标记和标记的基本操作(打印、谓词)的常量。 |
hash | 1 | Package hash提供hash功能接口。 |
adler32 | 2 | 包adler32实现Adler-32校验和。 |
crc32 | 2 | 包crc32实现32位循环冗余校验或CRC-32校验和。 |
crc64 | 2 | crc64包实现64位循环冗余校验,即CRC-64校验和。 |
fnv | 2 | Package fnv实现了由Glenn Fowler、Landon Curt Noll和Phong Vo创建的非加密哈希函数fnv -1和fnv -1a。 |
html | 1 | Package html提供了转义和非转义html文本的函数。 |
template | 2 | Package template (html/template)实现了数据驱动的模板,用于生成安全的html输出,防止代码注入。 |
image | 1 | Package image实现了一个基本的二维图像库。 |
color | 2 | color 包实现了基本的颜色库。 |
palette | 3 | Package palette提供标准的调色板。 |
draw | 2 | draw 包提供组装图片的方法. |
gif | 2 | gif 包实现了GIF图片的解码. |
jpeg | 2 | 包jpeg实现jpeg图像解码器和编码器。 |
png | 2 | png 包实现了PNG图像的编码和解码. |
index | 1 | |
suffixarray | 2 | Package suffixarray使用内存中的后缀数组在对数时间内实现子字符串搜索。 |
io | 1 | io 包为I/O原语提供了基础的接口. |
ioutil | 2 | ioutil 实现了一些I/O的工具函数。 |
log | 1 | 包log实现了一个简单的日志包。 |
syslog | 2 | 包syslog为系统日志服务提供了一个简单的接口。 |
math | 1 | math 包提供了基本常数和数学函数。 |
big | 2 | big 包实现了(大数的)高精度运算. |
cmplx | 2 | cmplx 包为复数提供了基本的常量和数学函数. |
rand | 2 | rand 包实现了伪随机数生成器. |
mime | 1 | 包mime实现了mime规范的部分内容。 |
multipart | 2 | Package multipart实现了RFC 2046中定义的MIME多部分解析。 |
net | 1 | Package net为网络I/O提供了一个可移植的接口,包括TCP/IP、UDP、域名解析和Unix域套接字。 |
http | 2 | 包http提供http客户端和服务器实现。 |
cgi | 3 | cgi 包实现了RFC3875协议描述的CGI(公共网关接口). |
cookiejar | 3 | 包cookiejar实现了一个内存中兼容RFC 6265的http.CookieJar。 |
fcgi | 3 | fcgi 包实现了FastCGI协议. |
httptest | 3 | httptest 包提供HTTP测试的单元工具. |
httputil | 3 | Package httputil提供了HTTP实用程序功能,补充了net/http包中更常见的功能。 |
pprof | 3 | pprof 包通过提供HTTP服务返回runtime的统计数据,这个数据是以pprof可视化工具规定的返回格式返回的. |
2 | mail 包实现了解析邮件消息的功能. | |
rpc | 2 | rpc 包提供了一个方法来通过网络或者其他的I/O连接进入对象的外部方法. |
jsonrpc | 3 | jsonrpc 包使用了rpc的包实现了一个JSON-RPC的客户端解码器和服务端的解码器. |
smtp | 2 | 包smtp实现了rfc5321定义的简单邮件传输协议。 |
textproto | 2 | Package textproto实现了对HTTP、NNTP和SMTP风格的基于文本的请求/响应协议的通用支持。 |
url | 2 | Package url解析url并实现查询转义。 |
os | 1 | Package os提供了一个独立于平台的操作系统功能接口。 |
exec | 2 | Package exec运行外部命令。 |
signal | 2 | 包signal实现对传入信号的访问。 |
user | 2 | 包user允许根据名称或id查找用户帐户。 |
path | 1 | 包path实现了用于操作斜杠分隔路径的实用程序例程。 |
filepath | 2 | Package filepath实现了以与目标操作系统定义的文件路径兼容的方式操作文件名路径的实用程序例程。 |
reflect | 1 | Package reflect实现了运行时反射,允许程序操作任意类型的对象。 |
regexp | 1 | 包regexp实现正则表达式搜索。 |
syntax | 2 | 包syntax将正则表达式解析为解析树,并将解析树编译为程序。 |
runtime | 1 | TODO(osc): 需更新 runtime 包含与Go的运行时系统进行交互的操作,例如用于控制Go程的函数. |
cgo | 2 | cgo 包含有 cgo 工具生成的代码的运行时支持. |
debug | 2 | debug 包含有程序在运行时调试其自身的功能. |
pprof | 2 | pprof 包按照可视化工具 pprof 所要求的格式写出运行时分析数据. |
race | 2 | race 包实现了数据竞争检测逻辑. |
sort | 1 | sort 包为切片及用户定义的集合的排序操作提供了原语. |
strconv | 1 | 包strconv实现了与基本数据类型的字符串表示之间的转换。 |
strings | 1 | 包字符串实现了简单的函数来操作字符串。 |
sync | 1 | sync 包提供了互斥锁这类的基本的同步原语. |
atomic | 2 | atomic 包提供了底层的原子性内存原语,这对于同步算法的实现很有用. |
syscall | 1 | 包syscall包含一个到底层操作系统原语的接口。 |
testing | 1 | 包testing提供了对Go包的自动化测试的支持。 |
iotest | 2 | 包iotest实现了主要用于测试的读取器和写入器。 |
quick | 2 | Package quick实现了一些实用功能来帮助进行黑盒测试。 |
text | 1 | |
scanner | 2 | 包scanner为utf -8编码的文本提供了一个扫描器和标记器。 |
tabwriter | 2 | 包tabwriter实现了一个写过滤器(tabwriter. writer),它将输入中的制表列转换为正确对齐的文本。 |
template | 2 | Package template实现了用于生成文本输出的数据驱动模板。 |
parse | 2 | Package parse为text/template和html/template定义的模板构建解析树。 |
time | 1 | 包time提供了测量和显示时间的功能。 |
unicode | 1 | unicode 包提供了一些测试Unicode码点属性的数据和函数. |
utf16 | 2 | utf16 包实现了对UTF-16序列的编码和解码。 |
utf8 | 2 | utf8 包实现了支持UTF-8文本编码的函数和常量. |
unsafe | 1 | unsafe 包含有关于Go程序类型安全的所有操作. |
2、其它包
(1)、子代码库
这些包是 Go 项目的一部分,但并未在主源码树中。它们在比 Go 核心库更加宽松的兼容性需求下开发。 可通过“go get”安装它们.
- crypto — 附加的加密包。
- image — 附加的图像包。
- net — 附加的网络包。
- sys — 系统调用包。
- text — 文本处理包。
- tools — godoc、vet、cover 及其它工具。
- exp — 实验性代码(可能不经警告就更改,请小心对待)。
(2)、社区
这些服务可帮你寻找社区提供的开源包。