golang比較優(yōu)秀的第三方庫(kù)收集

golang有許多優(yōu)秀的第三方庫(kù),有時(shí)要使用時(shí)忘記庫(kù)名又要去github找半天粟矿,還是寫下來(lái)做個(gè)筆記并且逐步添加撩轰。以下的庫(kù)基本都實(shí)際使用過(guò)档桃。

log


logrus

star最多的log項(xiàng)目,我現(xiàn)在基本都使用這個(gè)項(xiàng)目蝶防,因?yàn)閷懛ǜ俜郊嫒莺芊奖恪?br> 但是logrus沒(méi)有日志文件自動(dòng)切割功能甚侣,找了半天找到這個(gè):
file-rotatelogs

也有人把beego的部分代碼
抽出來(lái)做成rotate。不過(guò)上面的file-rotatelogs應(yīng)該可以滿足需求了间学。

zap

號(hào)稱最快的go log庫(kù)殷费,但是寫法別扭,所以我一直沒(méi)用上低葫。

JSON解析


json-iterator

號(hào)稱最快的go json解析器详羡。跟官方的寫法兼容,我目前基本都使用這個(gè)解析器嘿悬。

tidwall/gjson

主要用來(lái)解析JSON实柠。
不用再定義復(fù)雜結(jié)構(gòu),直接像其他語(yǔ)言一樣根據(jù)Key來(lái)獲取數(shù)據(jù)善涨,方便很多主到。
而且gjson官方自己的測(cè)試結(jié)果性能還是不錯(cuò)的。

實(shí)際使用跟官方混用比較好:
gjson對(duì)于Json數(shù)據(jù)格式不是很嚴(yán)格的情況最為有用躯概,還有就是JSON數(shù)據(jù)結(jié)構(gòu)定義太多但又只想讀取部分值的情況登钥。
官方用在數(shù)據(jù)格式嚴(yán)格定義且數(shù)據(jù)穩(wěn)定的情況比gjson好用。

Web框架


gin-gonic/gin

一開(kāi)始就使用gin娶靡,因?yàn)槁?tīng)說(shuō)性能不錯(cuò)牧牢,而且我基本只需要做API,對(duì)html模板基本無(wú)需求姿锭,使用的結(jié)果感覺(jué)還是不錯(cuò)塔鳍,簡(jiǎn)單容易上手。

fasthttp

最快的go http服務(wù)器呻此,不支持http2.0轮纫,有性能需求時(shí)可以考慮使用。此開(kāi)源項(xiàng)目對(duì)于go的優(yōu)化也值得學(xué)習(xí)焚鲜。
另一個(gè)star也很多的web框架:iris曾經(jīng)也是基于fasthttp開(kāi)發(fā)的掌唾,不過(guò)后來(lái)也改成基于go默認(rèn)的net/http放前,根據(jù)iris作者的說(shuō)法主要是因?yàn)閒asthttp不支持http2.0,而且很多第三方的庫(kù)都是基于net/http編寫糯彬,另外fasthttp的作者已經(jīng)很久不參與維護(hù)項(xiàng)目凭语。
所以fasthttp最好不要用于生產(chǎn),不過(guò)源碼里的goroutine池撩扒,內(nèi)存池等各種優(yōu)化值得學(xué)習(xí)似扔。

隨機(jī)數(shù)


NebulousLabs/fastrand

性能非常好的隨機(jī)數(shù)庫(kù),實(shí)測(cè)確實(shí)比官方隨機(jī)數(shù)快很多搓谆。

數(shù)據(jù)庫(kù)


golang數(shù)據(jù)庫(kù)自帶連接池炒辉,操作數(shù)據(jù)庫(kù)時(shí)需要事先了解一下這個(gè)概念。

1. go-sql-driver/mysql

我想大多數(shù)人都使用這個(gè)mysql連接驅(qū)動(dòng)包泉手。

2. gomodule/redigo

不錯(cuò)的redis客戶端辆脸。

protobuf


1. golang/protobuf

官方的protobuf庫(kù)。

2. gogo/protobuf

據(jù)說(shuō)比樓上官方的快很多螃诅,沒(méi)有實(shí)際使用過(guò)啡氢。

TOML庫(kù)


BurntSushi/toml

大多數(shù)go程序都使用toml做為配置文件。

配置庫(kù)


viper
支持從多種配置格式的文件术裸、環(huán)境變量倘是、命令行等讀取配置,具體功能如下:

setting defaults
reading from JSON, TOML, YAML, HCL, and Java properties config files
live watching and re-reading of config files (optional)
reading from environment variables
reading from remote config systems (etcd or Consul), and watching changes
reading from command line flags
reading from buffer
setting explicit values

爬蟲(chóng)


PuerkitoBio/goquery

感覺(jué)用golang寫爬蟲(chóng)比python更爽快袭艺。
我寫簡(jiǎn)單爬蟲(chóng)比較喜歡先用go的http.Client把文件全抓下來(lái)搀崭,然后使用goquery庫(kù)來(lái)解析本地的html文件。
附帶一下使用Fiddler4抓ios手機(jī)數(shù)據(jù)當(dāng)遇到https頁(yè)面時(shí)猾编,要先用ios的瀏覽器打開(kāi)代理的Fildder頁(yè)面瘤睹,安裝證書(shū),并且在ios系統(tǒng)設(shè)置里開(kāi)啟信任該證書(shū)答倡。然后就可以愉快的分析頁(yè)面了轰传。
當(dāng)使用go的http.Client下載https頁(yè)面,在創(chuàng)建http.Client時(shí)最好設(shè)置:

TLSClientConfig:       &tls.Config{InsecureSkipVerify: true}, //禁用https證書(shū)檢查

靜態(tài)打包工具


packr
將靜態(tài)資源打包成go文件瘪撇,直接編譯進(jìn)最終程序获茬。

圖表chart


go-echarts
中文官網(wǎng)文檔更詳細(xì)。
非常好的chart圖表倔既,是百度開(kāi)源js echarts的go封裝恕曲,發(fā)布程序時(shí)需要用到上面的packr把資源打包成go文件,然后再編譯發(fā)布渤涌。
另外默認(rèn)的js文件放在此開(kāi)源官方的服務(wù)器上佩谣,可以定制修改到自己的服務(wù)器。

Hashids


go-hashids

SnowFlake 算法


goSnowFlake
分布式id生成器

mail發(fā)送客戶端


gomail

驗(yàn)證碼服務(wù)


captcha
gocaptcha
gocaptcha - Go語(yǔ)言學(xué)習(xí)之驗(yàn)證碼服務(wù)實(shí)現(xiàn)原理

其實(shí)小系統(tǒng)用不著太復(fù)雜实蓬,我用的是自己寫的簡(jiǎn)單驗(yàn)證碼服務(wù)茸俭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吊履,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瓣履,更是在濱河造成了極大的恐慌,老刑警劉巖练俐,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袖迎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡腺晾,警方通過(guò)查閱死者的電腦和手機(jī)燕锥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)悯蝉,“玉大人归形,你說(shuō)我怎么就攤上這事”怯桑” “怎么了暇榴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蕉世。 經(jīng)常有香客問(wèn)我蔼紧,道長(zhǎng),這世上最難降的妖魔是什么狠轻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任奸例,我火速辦了婚禮,結(jié)果婚禮上向楼,老公的妹妹穿的比我還像新娘查吊。我一直安慰自己,他們只是感情好湖蜕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布逻卖。 她就那樣靜靜地躺著,像睡著了一般昭抒。 火紅的嫁衣襯著肌膚如雪箭阶。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天戈鲁,我揣著相機(jī)與錄音仇参,去河邊找鬼。 笑死婆殿,一個(gè)胖子當(dāng)著我的面吹牛诈乒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播婆芦,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼怕磨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼喂饥!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起肠鲫,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤员帮,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后导饲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體捞高,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年渣锦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硝岗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袋毙,死狀恐怖型檀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情听盖,我是刑警寧澤胀溺,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站皆看,受9級(jí)特大地震影響月幌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悬蔽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一扯躺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝎困,春花似錦录语、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至始藕,卻和暖如春蒲稳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伍派。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工江耀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诉植。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓祥国,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舌稀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評(píng)論 2 89
  • 你嚴(yán)格執(zhí)行了馬拉松的訓(xùn)練計(jì)劃啊犬、你嚴(yán)格的遵照了訓(xùn)練計(jì)劃中的飲食搭配和營(yíng)養(yǎng)配餐、你謹(jǐn)小慎微的為了防止受傷壁查,按照低于馬拉...
    寧?kù)o火山閱讀 1,044評(píng)論 0 3
  • 對(duì)于上學(xué)的孩子來(lái)說(shuō)睡腿,學(xué)習(xí)是其第一任務(wù)语御,可除了學(xué)習(xí),是否還應(yīng)該關(guān)注一下孩子其它方面呢嫉到。 雖然作為父母關(guān)注孩子的學(xué)習(xí)沃暗,...
    一生所求8閱讀 267評(píng)論 0 0
  • 課堂提問(wèn)是指在教學(xué)中教師根據(jù)教學(xué)目標(biāo)的要求月洛,針對(duì)有關(guān)教學(xué)內(nèi)容設(shè)置一系列問(wèn)題何恶,使學(xué)生通過(guò)思考和回答,促進(jìn)思維的積極性...
    小川子910閱讀 681評(píng)論 0 0
  • 窗外嚼黔,汽車輪子飛速的碾過(guò)柏油路面细层,唰~唰~的發(fā)出燥人的聲響,夾裹著路邊丁香花的甜味兒唬涧,一齊穿過(guò)紗窗疫赎,竄進(jìn)屋里,在灌...
    和星星說(shuō)說(shuō)話閱讀 466評(píng)論 0 8