有那些值得學習的C/C++和Lua開發的項目源碼?

最近在學習Lua,pil也看完了,但是對於使用C++和Lua的交互來開發項目還是沒什麼實感。雖然代碼都能讀懂,但是還是感覺不出C++和Lua交互開發的優點在哪,想找一個小型而成熟的項目源碼看看,不知道有哪些開源項目源碼值得學習?


Torch7一定算一個:torch/torch7 · GitHub

它是一個正在流行,而且將更為流行的機器學習和科學計算框架。說到機器學習,Yann LeCun識得伐,他的大部分工作已經轉移到torch上了。除了LeCun,還有很多的大牛也正在漸漸地轉向Torch,這使得Torch7正在成長為可以和Caffe一戰的工具。

它提供了:

一個強大的 N 維數組

提供大量索引、切片和置換的函數

線性算術程序

神經網路以及其他有用的基礎模型

數值優化程序

通過 LuaJIT 實現方便的C介面

易用的多GPU支持和並行模型

少年,開始閱讀代碼吧~


openresty


既然邀請我,我肯定就推薦廖大的quick了 chukong/quick-cocos2d-x · GitHub

基於cocos2d-x做的lua擴展和封裝,反正在cocos2d-x社區超級流行,在quick基礎上也誕生了大量月流水千萬級的手游。

半年前cocos2d-x v3就已經把Quick框架合併了到主倉庫 cocos2d/cocos2d-x · GitHub 了,不過你要學習的話,還是用quick倉庫開始,免得看到cocos2d-x混雜著各種C++實現JS實現跨平台實現容易迷路暈掉。前面給的那個倉庫比較純粹容易學習理解。


skynet : cloudwu/skynet · GitHub

輕量級的遊戲伺服器,核心 c 代碼不多,只有4-5k 行,很好讀,然後通過 LuaAPI 來完成服務間的通訊協作。而且通過對 Lua 做了一些 hack 工作來實現了一些特殊的需求,具體可以參照 wiki。


koreader/koreader · GitHub


我搞了個和ejoy2d類似的做遊戲的東西,很精簡,個人覺得比較有意思。一會兒放到網上去。

=============================

已經上傳上去了gmmybu/Fariy2D · GitHub,就那樣吧。


其實雲風大俠的ejoy/ejoy2d · GitHub也很值得學習


可以看看開源遊戲引擎love2d,代碼寫得很不錯,c++和lua交互完全使用的lua c api,沒有使用第三方庫。我覺得很適合用來學習。


openresty啊,一次滿足你兩個願望~

最近我還在嘗試模仿openresty,[將 ssdb 嵌入 lua 模塊](GitHub - rainingmaster/ssdb_with_lua: Embed the Power of Lua into SSDB),有興趣可以一起試試~


love


nginx lua tolua++


開源遊戲框架cegui。


我們團隊在github上有一個開源項目叫CLAIMS,是一款支持事務處理,基於內存分析的分散式RDBMS資料庫。

CLAIMS的特點是實時分析,可擴展,高吞吐,支持數據一致性。用來處理海量數據,可以對新加入的數據和歷史數據同時進行處理,支持實時數據處理,實時返回處理結果。

它的對標項目是Impala,VoltDB。

我們使用C++開發,在機器擴展自感知,NUMA性能優化,網路數據壓縮,動態job調度等多項技術上均有創新。

目前,我們處於開發階段,十分希望有技術高手能夠加入,一起加快這個項目的開源進程。

你可以通過dase/CLAIMS · GitHub 了解我們的項目以及代碼。

如果你感興趣的話可以從github上直接聯繫我們!


推薦閱讀:

什麼是面向對象編程?它與面向過程編程的異同有哪些?
C++中為什麼有delete[]這種寫法?
關於指針數組的初始化的一個問題?
C++ string + 號返回的是右值,為什麼下面這段代碼不報錯?
為什麼C++的庫函數的定義會這麼複雜?

TAG:編程語言 | 開源項目 | C | 編程學習 | Lua |