GrapeNetGo 語(yǔ)言編寫輕量級(jí)網(wǎng)絡(luò)庫(kù)以及工具庫(kù)
Go語(yǔ)言編寫輕量級(jí)網(wǎng)絡(luò)庫(kù) (grapeNet is a lightweight and Easy Use Network Framework)
可用于游戲服務(wù)端、強(qiáng)網(wǎng)絡(luò)服務(wù)器端或其他類似應(yīng)用場(chǎng)景,每個(gè)模塊單獨(dú)提取并且擁有獨(dú)立的使用方法,內(nèi)部耦合性較輕。
其實(shí)GO語(yǔ)言曾經(jīng)有過(guò)很多強(qiáng)架構(gòu)的框架,比如GOWOLRD之類的,已經(jīng)足夠了,但是我會(huì)將庫(kù)用于各種輕量級(jí)應(yīng)用不需要過(guò)于復(fù)雜的內(nèi)容,所以我設(shè)計(jì)了GrapeNet,目的是模塊獨(dú)立化。 你可以拆開(kāi)只使用其中很小的模塊,也可以組合成一個(gè)服務(wù)端,并且在架構(gòu)中設(shè)計(jì)也較為輕松,至于熱更新的問(wèn)題,目前腳本數(shù)據(jù)支持熱更新,并且是自動(dòng)的,只要跑一下UPDATE即可,程序本身稍后測(cè)試后發(fā)布(僅支持LINUX)。
本庫(kù)更像是一個(gè)日常服務(wù)端開(kāi)發(fā)的輕量級(jí)工具庫(kù)集合,用的開(kāi)心噢。
本庫(kù)內(nèi)的大部分子模塊均用于實(shí)際線上游戲產(chǎn)品、防御類產(chǎn)品以及支付類產(chǎn)品中,經(jīng)過(guò)一定的檢驗(yàn),可以放心使用。
慢慢更新中,很多坑要填,根據(jù)近期測(cè)試,除LUA庫(kù)和網(wǎng)絡(luò)庫(kù)外,其他庫(kù)均可直接用于商業(yè)產(chǎn)品。
安裝
go get -u github.com/koangel/grapeNet/...
模塊表(Function)
- Lua腳本綁定管理(可綁定任何類型的函數(shù)、線程安全且自動(dòng)推倒類型)
- 日志庫(kù)(底層采用Seelog)
- 函數(shù)管理系統(tǒng)(可以根據(jù)任何類型參數(shù)將其與函數(shù)綁定并互相調(diào)用)
- 流處理
- Tcp網(wǎng)絡(luò)
- Websocket網(wǎng)絡(luò) (基礎(chǔ)版)
- Codec(任意類型注冊(cè)對(duì)象并在其他位置動(dòng)態(tài)創(chuàng)建該對(duì)象)
- CSV序列化模塊(通過(guò)Tag可以直接序列化到對(duì)象或?qū)ο笮蛄谢癁镃SV)
- Sign生成庫(kù)(自動(dòng)將結(jié)構(gòu)或map[string]interface{}排序后生成一個(gè)sign,可以自行設(shè)置KEY)
- Etcd簡(jiǎn)易封裝,針對(duì)Watcher做任意參數(shù)的監(jiān)聽(tīng)callback(多Key監(jiān)聽(tīng))
- Continers容器庫(kù),游戲用背包容器、帶有鎖的并行LIST等
- Utils多種簡(jiǎn)易輔助庫(kù)的集合(三元運(yùn)算符、數(shù)值轉(zhuǎn)換、輕并行執(zhí)行庫(kù))
依賴第三方
- Seelog (github.com/cihub/seelog)
- Gopher-lua(github.com/yuin/gopher-lua)
- Gopher-luar(layeh.com/gopher-luar)
- Websocket (github.com/gorilla/websocket)
- Etcd ClientV3(github.com/coreos/etcd)
- Bson (gopkg.in/mgo.v2/bson)
不依賴任何CGO內(nèi)容,lua本身也是純GO實(shí)現(xiàn)。
