golang有许多优秀的第三方库,有时要使用时忘记库名又要去github找半天,还是写下来做个笔记并且逐步添加。以下的库基本都实际使用过。
log
star最多的log项目,我现在基本都使用这个项目,因为写法跟官方兼容很方便。
但是logrus没有日志文件自动切割功能,找了半天找到这个:
也有人把beego的部分代码
抽出来做成rotate。不过上面的file-rotatelogs应该可以满足需求了。
号称最快的go log库,但是写法别扭,所以我一直没用上。
JSON解析
号称最快的go json解析器。跟官方的写法兼容,我目前基本都使用这个解析器。
主要用来解析JSON。
不用再定义复杂结构,直接像其他语言一样根据Key来获取数据,方便很多。
而且gjson官方自己的测试结果性能还是不错的。
实际使用跟官方混用比较好:
gjson对于Json数据格式不是很严格的情况最为有用,还有就是JSON数据结构定义太多但又只想读取部分值的情况。
官方用在数据格式严格定义且数据稳定的情况比gjson好用。
Web框架
一开始就使用gin,因为听说性能不错,而且我基本只需要做API,对html模板基本无需求,使用的结果感觉还是不错,简单容易上手。
最快的go http服务器,不支持http2.0,有性能需求时可以考虑使用。此开源项目对于go的优化也值得学习。
另一个star也很多的web框架:iris曾经也是基于fasthttp开发的,不过后来也改成基于go默认的net/http,根据ir