admin管理员组文章数量:1664571
- 其他
- 常用包
常用包 | 说明 |
---|---|
fmt | 实现格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。 |
io | 实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们在进行流式读写(比如读写文件)时,通常会用到该包。 |
bufio | 它在io的基础上提供了缓存功能。在具备了缓存功能后, bufio可以比较方便地提供ReadLine之类的操作。 |
strconv | 提供字符串与基本数据类型互转的能力。 |
os | 本包提供了对操作系统功能的非平台相关访问接口。接口为Unix风格。提供的功能包括文件操作、进程管理、信号和用户账号等。 |
sync | 它提供了基本的同步原语。在多个goroutine访问共享资源的时候,需要使用sync中提供的锁机制。 |
flag | 它提供命令行参数的规则定义和传入参数解析的功能。绝大部分的命令行程序都需要用到这个包。 |
encoding/json | JSON目前广泛用做网络程序中的通信格式。本包提供了对JSON的基本支持,比如从一个对象序列化为JSON字符串,或者从JSON字符串反序列化出一个具体的对象等。 |
http | 通过http包,只需要数行代码,即可实现一个爬虫或者一个Web服务器,这在传统语言中是无法想象的。 |
2. 常用第三方包
包 | 地址 |
---|---|
数据库操作 | github/jinzhu/gorm github/go-xorm/xorm |
搜索es | github/olivere/elastic |
rocketmq操作 | github/apache/rocketmq-client-go/v2 |
rabbitmq 操作 | github/streadway/amqp |
redis 操作 | github/go-redis/redis |
etcd 操作 | github/coreos/etcd/clientv3 |
kafka | https://github/Shopify/sarama https://github/bsm/sarama-cluster |
excel 操作 | github/360EntSecGroup-Skylar/excelize |
ppt 操作 | golang/x/tools/cmd/present |
go-svg 操作 | https://github/ajstarks/svgo |
go 布隆过滤器实现 | https://github/AndreasBriese/bbloom |
json相关 | https://github/bitly/go-simplejson |
LRU Cache实现 | https://github/bluele/gcache https://github/hashicorp/golang-lru |
go运行时函数替换 | https://github/bouk/monkey |
toml | https://github/toml-lang/toml https://github/naoina/toml |
yaml | https://github/go-yaml/yaml |
viper | https://github/spf13/viper |
go key/value存储 | https://github/etcd-io/bbolt |
基于ringbuffer的无锁golang workpool | https://github/Dai0522/workpool |
轻量级的协程池 | https://github/ivpusic/grpool |
打印go的详细数据结构 | https://github/davecgh/go-spew |
基于ringbuffer实现的队列 | https://github/eapache/queue |
拼音 | https://github/go-ego/gpy |
分词 | https://github/go-ego/gse |
搜索 | https://github/go-ego/riot |
windows COM | https://github/go-ego/cedar |
session | https://github/gorilla/sessions |
路由 | https://github/gorilla/mux |
websocket | https://github/gorilla/websocket |
Action handler | https://github/gorilla/handlers |
csrf | https://github/gorilla/csrf |
context | https://github/gorilla/context |
过滤html标签 | https://github/grokify/html-strip-tags-go |
可配置的HTML标签过滤 | https://github/microcosm-cc/bluemonday |
根据IP获取地理位置信息 | https://github/ipipdotnet/ipdb-go |
html转markdown | https://github/jaytaylor/html2text |
goroutine 本地存储 | https://github/jtolds/gls |
彩色输出 | https://github/mgutz/ansi |
表格打印 | https://github/olekukonko/tablewriter |
reflect 更高效的反射API | https://github/modern-go/reflect2 |
msgfmt (格式化字符串,将%更换为变量名) | https://github/modern-go/msgfmt |
可取消的goroutine | https://github/modern-go/concurrent |
深度拷贝 | https://github/mohae/deepcopy |
安全的类型转换包 | https://github/spf13/cast |
从文本中提取链接 | https://github/mvdan/xurls |
字符串格式处理(驼峰转换) | https://godoc/github/naoina/go-stringutil |
文本diff实现 | https://github/pmezard/go-difflib |
uuid相关 | https://github/satori/go.uuid https://github/snluu/uuid |
去除UTF编码中的BOM | https://github/ssor/bom |
图片缩放 | https://github/nfnt/resize |
生成 mock server | https://github/otokaze/mock |
go 性能上报到influxdb | https://github/rcrowley/go-metrics |
go zookeeper客户端 | https://github/samuel/go-zookeeper |
go thrift | https://github/samuel/go-thrift |
MQTT 客户端 | https://github/shirou/mqttcli |
hbase | https://github/tsuna/gohbase |
go 性能上报到influxdb | https://github/rcrowley/go-metrics |
go 性能上报到prometheus | https://github/deathowl/go-metrics-prometheus |
ps utils | https://github/shirou/gopsutil |
小数处理 | https://github/shopspring/decimal |
结构化日志处理(json) | https://github/sirupsen/logrus |
命令行程序框架 cli | https://github/urfave/cli |
命令行程序框架 cobra | https://github/spf13/cobra |
3. 必看项目
项目 | 地址 | 说明 |
---|---|---|
gin | github/gin-gonic/gin | 轻量级web框架,很多公司都是基于它进行魔改 |
beego | github/beego/beego | 也是web框架,比较全能 |
kratos | github/go-kratos/kratos | bilibili开源的微服务框架,b站出品必属于精品 |
TiDB | github/pingcap/tidb | 见识过mysql性能瓶颈之后你会想要选择的一款数据库 |
4. 完整标准库列表
包 | 子包 | 说明 |
---|---|---|
bufio | bytes | 提供了对字节切片操作的函数 |
crypto | 收集了常见的加密常数 | |
errors | 实现了操作错误的函数 | |
Expvar | 为公共变量提供了一个标准的接口,如服务器中的运算计数器 | |
flag | 实现了命令行标记解析 | |
fmt | 实现了格式化输入输出 | |
hash | 提供了哈希函数接口 | |
html | 实现了一个HTML5兼容的分词器和解析器 | |
image | 实现了一个基本的二维图像库 | |
io | 提供了对I/O原语的基本接口 | |
log | 它是一个简单的记录包,提供最基本的日志功能 | |
math | 提供了一些基本的常量和数学函数 | |
mine | 实现了部分的MIME规范 | |
net | 提供了一个对UNIX网络套接字的可移植接口,包括TCP/IP、 UDP域名解析和UNIX域套接字 | |
os | 为操作系统功能实现了一个平台无关的接口 | |
path | 实现了对斜线分割的文件名路径的操作 | |
reflect | 实现了运行时反射,允许一个程序以任意类型操作对象 | |
regexp | 实现了一个简单的正则表达式库 | |
runtime | 包含与Go运行时系统交互的操作,如控制goroutine的函数 | |
sort | 提供对集合排序的基础函数集 | |
strconv | 实现了在基本数据类型和字符串之间的转换 | |
strings | 实现了操作字符串的简单函数 | |
sync | 提供了基本的同步机制,如互斥锁 | |
syscall | 包含一个低级的操作系统原语的接口 | |
testing | 提供对自动测试Go包的支持 | |
time | 提供测量和显示时间的功能 | |
unicode | Unicode编码相关的基础函数 | |
archive | tar | 实现对tar压缩文档的访问 |
zip | 提供对ZIP压缩文档的读和写支持 | |
compress | bzip2 | 实现了bzip2解压缩 |
flate | 实现了RFC 1951中所定义的DEFLATE压缩数据格式 | |
gzip | 实现了RFC 1951中所定义的gzip格式压缩文件的读和写 | |
lzw | 实现了 Lempel-Ziv-Welch编码格式的压缩的数据格式 | |
zlib | 实现了RFC 1950中所定义的zlib格式压缩数据的读和写 | |
container | heap | 提供了实现heap.Interface接口的任何类型的堆操作 |
lsit | 实现了一个双链表 | |
ring | 实现了对循环链表的操作 | |
crypto | aes | 实现了AES加密(以前的Rijndael) |
cipher | 实现了标准的密码块模式,该模式可包装进低级的块加密实现中 | |
des | 实现了数据加密标准( Data Encryption Standard,DES)和三重数据加密算法( TripleData Encryption Algorithm, TDEA) | |
dsa | 实现了FIPS 186-3所定义的数据签名算法( Digital Signature Algorithm) | |
ecdsa | 实现了FIPS 186-3所定义的椭圆曲线数据签名算法( Elliptic Curve Digital SignatureAlgorithm) | |
elliptic | 实现了素数域上几个标准的椭圆曲线 | |
hmac | 实现了键控哈希消息身份验证码( Keyed-Hash Message Authentication Code,HMAC) | |
md5 | 实现了RFC 1321中所定义的MD5哈希算法 | |
rand | 实现了一个加密安全的伪随机数生成器 | |
rc4 | 实现了RC4加密,其定义见Bruce Schneier的应用密码学( Applied Cryptography) | |
rsa | 实现了PKCS#1中所定义的RSA加密 | |
sha1 | 实现了RFC 3174中所定义的SHA1哈希算法 | |
sha256 | 实现了FIPS 180-2中所定义的SHA224和SHA256哈希算法 | |
sha512 | 实现了FIPS 180-2中所定义的SHA384和SHA512哈希算法 | |
subtle | 实现了一些有用的加密函数,但需要仔细考虑以便正确应用它们 | |
tls | 部分实现了RFC 4346所定义的TLS 1.1协议 | |
x509 | 可解析X.509编码的键值和证书 | |
x509/pkix | 包含用于对X.509证书、 CRL和OCSP的ASN.1解析和序列化的共享的、低级的结构 | |
database | sql | 围绕SQL提供了一个通用的接口 |
sql/driver | 定义了数据库驱动所需实现的接口,同sql包的使用方式 | |
debug | dwarf | 提供了对从可执行文件加载的DWARF调试信息的访问,这个包对于实现Go语言的调试器非常有价值 |
elf | 实现了对ELF对象文件的访问。 ELF是一种常见的二进制可执行文件和共享库的文件格式。 Linux采用了ELF格式 | |
gosym | 访问Go语言二进制程序中的调试信息。对于可视化调试很有价值 | |
macho | 实现了对Mach-O对象文件的访问 | |
pe | 实现了对PE( Microsoft Windows Portable Executable)文件的访问 | |
encoding | ascii85 | 实现了ascii85数据编码,用于btoa工具和Adobe’s PostScript以及PDF文档格式 |
asn1 | 实现了解析DER编码的ASN.1数据结构,其定义见ITU-T Rec X.690 | |
base32 | 实现了RFC 4648中所定义的base32编码 | |
base64 | 实现了RFC 4648中所定义的base64编码 | |
binary | 实现了在无符号整数值和字节串之间的转化,以及对固定尺寸值的读和写 | |
csv | 可读和写由逗号分割的数值( csv)文件 | |
gob | 管理gob流——在编码器(发送者)和解码器(接收者)之间进行二进制值交换 | |
hex | 实现了十六进制的编码和解码 | |
json | 实现了定义于RFC 4627中的JSON对象的编码和解码 | |
pem | 实现了PEM( Privacy Enhanced Mail)数据编码 | |
xml |
版权声明:本文标题:golang知识图谱 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1730023299a1219710.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论