您现在的位置是:首页 >其他 >Go 的第三方开源库的学习网站首页其他

Go 的第三方开源库的学习

Scora_liu 2024-06-17 10:13:52
简介Go 的第三方开源库的学习

fasthttp库:

地址:github.com/valyala/fas…

1.比官方的net/http 库快十倍

2.fasthttp库的核心思路:资源复用

. 复用 goroutine,减轻 runtime 调度压力

. 对象复用,大量使用 sync.Pool 减轻 GC 压力

3.使用 fasthttp 的知名项目:Fiber、Gearbox、atreugo 等

jsoniter库

地址:github.com/json-iterat…

1.jsoniter(json-iterator)(JSON 解析器),比标准库(encoding/json)快了6倍多

2.与标准库 encoding/json 完全兼容

Marshal()

# encoding/json 
import "encoding/json"json.Marshal(&data)

# jsoniter
import jsoniter "github.com/json-iterator/go"
var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Marshal(&data)

Unmarshal()

# encoding/json
import "encoding/json"
json.Unmarshal(input, &data)

# jsoniter
import jsoniter "github.com/json-iterator/go"
var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Unmarshal(input, &data)

gogo/protobuf

地址:github.com/gogo/protob…

1.Protocol Buffers 是一种协议格式

2.功能:用于高效存储与读取结构化数据;可以将数据压缩更小(原因:基于二进制)

3.是基于官方库 golang/protobuf 的增强

. 比 golang/protobuf 更快地序列化与反序列化

. 更规范的 Go 结构

. 兼容 官方库 golang/protobuf

. 可选地生成额外的帮助代码,减少代码输入

. 可以生成测试代码和 benchmark 代码

. 其他序列化格式

valyala/quicktemplate 库

地址:github.com/valyala/qui…

1.Go 模板渲染引擎

2.比标准库 html/template 快20倍以上。原因:quicktemplate 会先将编写的模板代码转换为 Go 语言代码,再进行渲染

3.quicktemplate 与 Go 的语法非常类似

4.几乎所有的 bug 都能再模板编译时被捕获

5.模板中可以嵌入任意 Go 代码

6.quicktemplate 的主要目的是生成 HTML,但也可从实现 JSON 和 XML 序列化(序列化通常会比通过标准库 encoding/json 与 encoding/xml 更快)

注意:第三方库是在官方库解决不了的时候再尝试使用

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。