這些 C語(yǔ)言開(kāi)源項(xiàng)目 YYDS!!!

收集整理了一些不錯(cuò)的 C 語(yǔ)言開(kāi)源項(xiàng)目,給大家伙分享一下!
SQLite
SQLite 是一款輕型的數(shù)據(jù)庫(kù),是遵守 ACID 的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它包含在一個(gè)相對(duì)小的 C 庫(kù)中。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低。

SQLite 是在 2000 年發(fā)布的,到目前為止已經(jīng)有 21 年了。
像大家現(xiàn)在使用的微信,它本地就是通過(guò) SQLite 來(lái)存儲(chǔ)的數(shù)據(jù)。
注意:微信本身的服務(wù)器就不能使用 SQLite,畢竟,并發(fā)量太大,SQLite 沒(méi)辦法滿(mǎn)足。

SQLite 的作者是 D. Richard Hipp(理查德希普),作者非常的有個(gè)性,用到的軟件工具都是自己寫(xiě),他寫(xiě)了不少工具,比如 SQLite、Bug 追蹤系統(tǒng) CVSTrac、版本管理系統(tǒng) Fossil。
項(xiàng)目地址:https://sqlite.org/src/doc/trunk/README.md
相關(guān)閱讀:如何學(xué)習(xí) sqlite 源碼?(https://www.zhihu.com/question/22819578)
althttpd
SQLite 作者最新開(kāi)源的 Web 服務(wù)器 althttpd,我們可以先來(lái)看下這個(gè)項(xiàng)目的時(shí)間線。

可以看出來(lái)開(kāi)源工作是最近才開(kāi)始的,但是實(shí)際上 althttpd 從 2004 年開(kāi)始就在支撐 ?https://sqlite.org/ 網(wǎng)站的運(yùn)行,althttpd 的設(shè)計(jì)目標(biāo)就是為了簡(jiǎn)單、安全同時(shí)低資源消耗。
在 2018 年,http://sqlite.org ?每天要響應(yīng) 50 萬(wàn)的 HTTP 請(qǐng)求,而只用了價(jià)值 40 美金的服務(wù)器,而且服務(wù)器處于很低的負(fù)載(0.1 或者 0.2),可以看出其性能還是不錯(cuò)的。
我們來(lái)看下 althttpd 的代碼,項(xiàng)目實(shí)際只有一個(gè) c 文件,整體行數(shù)也不多,是一個(gè)非常不錯(cuò)的學(xué)習(xí)項(xiàng)目。

而且項(xiàng)目中有一個(gè)介紹文件 althttpd.md,詳細(xì)介紹了 althttpd 的設(shè)計(jì)哲學(xué)、項(xiàng)目使用說(shuō)明等。

從 althttpd 的設(shè)計(jì)哲學(xué)可以看出來(lái),作者是一個(gè)很克制的人,并不是希望去做一個(gè)功能非常豐富的 Web 服務(wù)器,而是希望 althttpd 在滿(mǎn)足功能要求的前提下,能夠盡量保持代碼的簡(jiǎn)潔,這是非常值得我們學(xué)習(xí)的。
更多項(xiàng)目詳情請(qǐng)查看如下鏈接。
項(xiàng)目地址:https://sqlite.org/althttpd/doc/trunk/althttpd.md。
rt-thread
RT-Thread 是一個(gè)來(lái)自中國(guó)的開(kāi)源物聯(lián)網(wǎng)操作系統(tǒng),它提供了非常強(qiáng)的可伸縮能力:從一個(gè)可以運(yùn)行在 ARM Cortex-M0 芯片上的極小內(nèi)核,到中等的 ARM Cortex-M3/4/7 系統(tǒng),甚至是運(yùn)行于 MIPS32、ARM Cortex-A 系列處理器上功能豐富系統(tǒng)
項(xiàng)目地址:RT-Thread/rt-thread

Tinyhttpd
Tiny-httpd 是一個(gè)超輕量型 Http Server,使用 C 語(yǔ)言開(kāi)發(fā),全部代碼只有 502 行 (包括注釋),附帶一個(gè)簡(jiǎn)單的 Client,可以通過(guò)閱讀這段代碼理解一個(gè) Http Server 的本質(zhì)。
項(xiàng)目地址:https://github.com/LippiOuYang/Tinyhttpd

cJSON
cJ-SON 是一個(gè) JSON 編解碼器,非常輕量級(jí),C 文件只有 500 多行,速度也非常理想。cJ-SON 也存在幾個(gè)弱點(diǎn),雖然功能不是非常強(qiáng)大,但 cJ-SON 的小身板和速度是最值得贊賞的。其代碼被非常好地維護(hù)著,結(jié)構(gòu)也簡(jiǎn)單易懂,可以作為一個(gè)非常好的 C 語(yǔ)言項(xiàng)目進(jìn)行學(xué)習(xí)。
項(xiàng)目地址:https://github.com/DaveGamble/cJSON

FastDFS
FastDFS 是一款輕量級(jí)的開(kāi)源分布式文件系統(tǒng),功能包括:文件存儲(chǔ)、文件同步、文件上傳、文件下載等,解決了文件大容量存儲(chǔ)和高性能訪問(wèn)問(wèn)題。特別適合以文件為載體的在線服務(wù),如圖片、視頻、文檔服務(wù)等等。
項(xiàng)目地址:https://gitee.com/fastdfs100/fastdfs

CMockery
cmock-ery 是 google 發(fā)布的用于 C 單元測(cè)試的一個(gè)輕量級(jí)的框架。它很小巧,對(duì)其他開(kāi)源包沒(méi)有依賴(lài),對(duì)被測(cè)試代碼侵入性小。cmock-ery 的源代碼行數(shù)不到 3K,你閱讀一下 will_re-turn 和 mock 的源代碼就一目了然了。
項(xiàng)目地址:https://code.google.com/p/cmockery/downloads/list

Webbench
Webbench 是 Radim Kolar 在 1997 年寫(xiě)的一個(gè)在 linux 下使用的非常簡(jiǎn)單的網(wǎng)站壓測(cè)工具。它使用 fork()模擬多個(gè)客戶(hù)端同時(shí)訪問(wèn)我們?cè)O(shè)定的 URL,測(cè)試網(wǎng)站在壓力下工作的性能,最多可以模擬 3 萬(wàn)個(gè)并發(fā)連接去測(cè)試網(wǎng)站的負(fù)載能力。官網(wǎng)地址:http://home.tiscali.cz/~cz210552/webbench.html
項(xiàng)目地址:https://github.com/EZLippi/WebBench

Redis
Re-dis 是一個(gè)使用 C 語(yǔ)言寫(xiě)成的,開(kāi)源的 key-value 數(shù)據(jù)庫(kù)。Re-dis 支持的操作和數(shù)據(jù)類(lèi)型比 Mem-cached 要多,現(xiàn)在主要用于緩存,支持主從同步機(jī)制.
項(xiàng)目地址:https://redis.io/

HP-Socket
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服務(wù)端組件、客戶(hù)端組件和 Agent 組件,廣泛適用于各種不同應(yīng)用場(chǎng)景的 TCP/UDP/HTTP 通信系統(tǒng),提供 C/C++、C#、Del-phi、E(易語(yǔ)言)、Java、Python 等編程語(yǔ)言接口。HP-Socket 對(duì)通信層實(shí)現(xiàn)完全封裝,應(yīng)用程序不必關(guān)注通信層的任何細(xì)節(jié);HP-Socket 提供基于事件通知模型的 API 接口,能非常簡(jiǎn)單高效地整合到新舊應(yīng)用程序中。
項(xiàng)目地址:https://www.oschina.net/p/hp-socket
starrtc-server
免費(fèi) IM 系統(tǒng),IM 即時(shí)通信消息系統(tǒng)(含一對(duì)一文字聊天,群聊,聊天室),免費(fèi)一對(duì)一 voip 實(shí)時(shí)通話,錄屏,webrtc 服務(wù)端,免費(fèi)直播連麥,互動(dòng)直播,視頻直播,RTSP 拉流,RTMP 推流,語(yǔ)音對(duì)講,免費(fèi)在線會(huì)議,視頻會(huì)議等服務(wù)端程序,支持物聯(lián)網(wǎng)平臺(tái),萬(wàn)水千山總是情,來(lái)個(gè) star 行不行
項(xiàng)目地址:https://gitee.com/starRTC/starrtc-server

Ekho
Ekho(余音)是一個(gè)把文字轉(zhuǎn)換成聲音的軟件。它目前支持粵語(yǔ)、普通話(國(guó)語(yǔ))、詔安客語(yǔ)、藏語(yǔ)、雅言(中國(guó)古代通用語(yǔ))和韓語(yǔ)(試驗(yàn)中),英文則通過(guò) Fes-ti-val 間接實(shí)現(xiàn)。支持 Linux、Win-dows、An-droid.
項(xiàng)目地址:https://github.com/hgneng/ekho

Seafile
Seafile 是一款安全、高性能的開(kāi)源網(wǎng)盤(pán)(云存儲(chǔ))軟件。Seafile 提供了主流網(wǎng)盤(pán)(云盤(pán))產(chǎn)品所具有的功能,包括文件同步、文件共享等。在此基礎(chǔ)上,Seafile 還提供了高級(jí)的安全保護(hù)功能以及群組協(xié)作功能。由于 Seafile 是開(kāi)源的,你可以把它部署在私有云的環(huán)境中,作為私有的企業(yè)網(wǎng)盤(pán)。Seafile 支持 Mac、Linux、Win-dows 三個(gè)桌面平臺(tái),支持 An-droid 和 iOS 兩個(gè)移動(dòng)平臺(tái)。
項(xiàng)目地址:https://github.com/haiwen/seafile

ngx-fastdfs
分布式圖片實(shí)時(shí)動(dòng)態(tài)壓縮.ngx-fastdfs 是 ng-inx + lua +fastdfs 實(shí)現(xiàn)分布式圖片實(shí)時(shí)動(dòng)態(tài)壓縮。
項(xiàng)目地址:https://gitee.com/qieangel2013/ngx-fastdfs
參考:https://www.geek0ne.com/C-Cpp/Projects.html
