值得實踐的開源庫

2021-07-24 03:37:26 字數 1963 閱讀 4855

值得學習的c開源專案**

1. webbench

webbench是乙個在linux下使用的非常簡單的**壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的url,測試**在壓力下工作的效能,最多可以模擬3萬個併發連線去測試**的負載能力。webbench使用c語言編寫, **實在太簡潔,原始碼加起來不到600行。

tinyhttpd是乙個超輕量型http server,使用c語言開發,全部**只有502行(包括注釋),附帶乙個簡單的client,可以通過閱讀這段**理解乙個 http server 的本質。

3. cjson

cjson是c語言中的乙個json編解碼器,非常輕量級,c檔案只有500多行,速度也非常理想。 cjson也存在幾個弱點,雖然功能不是非常強大,但cjson的小身闆和速度是最值得讚賞的。其**被非常好地維護著,結構也簡單易懂,可以作為乙個非常好的c語言專案進行學習。

專案主頁:

4. cmockery

cmockery是google發布的用於c單元測試的乙個輕量級的框架。它很小巧,對其他開源包沒有依賴,對被測試**侵入性小。cmockery的源**行數不到3k,你閱讀一下will_return和mock的源**就一目了然了。

5. libev

libev是乙個開源的事件驅動庫,基於epoll,kqueue等os提供的基礎設施。其以高效出名,它可以將io事件,定時器,和訊號統一起來,統一放在事件處理這一套框架下處理。基於reactor模式,效率較高,並且**精簡(4.15版本8000多行),是學習事件驅動程式設計的很好的資源。

6. lua

lua很棒,lua是巴西人發明的,

指令碼語言.讓我臉紅的是lua的源**,百分之一百的ansi c,一點都不摻雜。在任何支援ansi c編譯器的平台上都可以輕鬆編譯通過。我試過,真是一點廢話都沒有。lua的**數量足夠小,5.1.4僅僅1.5w行,去掉空白行和注釋估計能到1w行。

7. sqlite

sqlite是乙個開源的嵌入式關聯式資料庫,實現自包容、零配置、支援事務的sql資料庫引擎。 其特點是高度便攜、使用方便、結構緊湊、高效、可靠。足夠小,大致3萬行c**,250k。

值得學習的c++專案**

1、mfc

大名鼎鼎的微軟基礎類庫(microsoft foundation class)。大凡學過vc++的人都應該知道這個庫。雖然從技術角度講,mfc是不大漂亮的,但是它構建於windows api 之上,能夠使程式設計師的工作更容易,程式設計效率高,減少了大量在建立 windows 程式時必須編寫的**,同時它還提供了所有一般 c++ 程式設計的優點,例如繼承和封裝。mfc 編寫的程式在各個版本的windows作業系統上是可移植的,例如,在windows 3.1下編寫的**可以很容易地移植到 windows nt 或 windows 95 上。但是在最近發展以及官方支援上日漸勢微。

2、qt

參考**:

qt是trolltech公司的乙個多平台的c++圖形使用者介面應用程式框架。它提供給應用 程式開發者建立藝術級的圖形使用者介面所需的所用功能。qt是完全物件導向的很容易擴充套件,並且允許真正地元件程式設計。自從2023年早些時候,qt 進入商業領域,它已經成為全世界範圍內數千種成功的應用程式的基礎。qt也是流行的linux桌面環境kde 的基礎,同時它還支援windows、macintosh、unix/x11等多種平台。

3、streammodule

參考**:

設計用於簡化編寫分布式程式的庫。嘗試著使得編寫處理非同步行為的程式更容易,而不是用同步的外殼包起非同步的本質。

4、******socket

參考**:

這個類庫讓編寫基於socket的客戶/伺服器程式更加容易。

5、a stream socket api for c++

參考**:

又乙個對socket的封裝庫。

其他libuv libcurl libutp jsoncpp boost zlib protobuf http-parser   libevent  opencv

值得推薦的android開源框架

帖子比較久,部分框架比較早 專案位址 2 網路請求的排序 scheduling 3 網路請求的優先順序處理 4 快取 5 多級別取消請求 6 和activity和生命週期的聯動 activity結束時同時取消所有網路請求 文件介紹 主要有四大模組 finalbitmap可以配置執行緒載入執行緒數量,...

值得推薦的android開源框架

專案位址 2 網路請求的排序 scheduling 3 網路請求的優先順序處理 4 快取 5 多級別取消請求 6 和activity和生命週期的聯動 activity結束時同時取消所有網路請求 文件介紹 主要有四大模組 finalbitmap可以配置執行緒載入執行緒數量,快取大小,快取路徑,載入顯示...

值得推薦的android開源框架

專案位址 2 網路請求的排序 scheduling 3 網路請求的優先順序處理 4 快取 5 多級別取消請求 6 和activity和生命週期的聯動 activity結束時同時取消所有網路請求 文件介紹 主要有四大模組 finalbitmap可以配置執行緒載入執行緒數量,快取大小,快取路徑,載入顯示...