github上有哪些好的C開源項目?


十個最值得閱讀學習的C開源項目代碼:

源碼閱讀——十個C開源項目


不請自來,不知道還有沒有同學在關注這個問題了,若不介意,在此推薦幾款碼雲 Gitee 上的優秀C開源項目,只有GitHub需求的同學可以忽略這個答案啦。

1. 項目名稱:準確率99.9%的 IP 地址 ip2region

項目簡介:準確率99.9%的 IP 地址定位庫,0.0x毫秒級查詢,資料庫文件大小只有1.5M,提供了java、php、c、python、nodejs、golang 查詢綁定和Binary、B樹、內存三種查詢演算法,媽媽再也不用擔心我的ip地址定位。

  • 99.9%準確率,定時更新:數據聚合了一些知名ip到地名查詢提供商的數據,這些是他們官方的的準確率,經測試著實比純真啥的準確多了;每次聚合一下數據需要1-2天,會不定時更新。
  • 標準化的數據格式:每條ip數據段都固定了格式:城市Id|國家|區域|省份|城市|ISP ;只有中國的數據精確到了城市,其他國家只能定位到國家,後前的選項全部是0,已經包含了全部你能查到的大大小小的國家。請忽略前面的城市Id,個人項目需求。
  • 體積小:生成的資料庫文件ip2region.db只有1.5M(1.2版本前是3.5M)
  • 多查詢客戶端的支持,0.0x毫秒級別的查詢:已經集成的客戶端有:java, php, c, python,nodejs,php擴展(支持linux, php5, php7版本已支持),golang。

項目地址:獅子的魂/ip2region - 碼雲

2. 項目名稱:swoole-src

項目簡介:PHP的非同步、並行、高性能網路通信引擎。

項目地址:swoole/swoole-src - 碼雲

3. 項目名稱:來自中國的物聯網操作系統 rt-thread

項目簡介: RT-Thread是一款來自中國的開源嵌入式實時操作系統,由國內一些專業開發人員從2006年開始開發、維護,除了類似FreeRTOS和UCOS的實時操作系統內核外,也包括一系列應用組件和驅動框架,如TCP/IP協議棧,虛擬文件系統,POSIX介面,圖形用戶界面,FreeModbus主從協議棧,CAN框架,動態模塊等,因為系統穩定,功能豐富的特性被廣泛用於新能源,電網,風機等高可靠性行業和設備上,已經被驗證是一款高可靠的實時操作系統。RT-Thread實時操作系統遵循GPLv2+許可證,實時操作系統內核及所有開源組件可以免費在商業產品中使用,不需要公布應用源碼,沒有任何潛在商業風險。

項目地址:RT-Thread/rt-thread - 碼雲

4. 項目名稱:My smart home

項目簡介:智能家居的概念(smart home , home auto)很早以前就有了,現在隨著硬體成本的下降,及google收購nest等,智能家居熱度升高。 本智能家居的架構,包括伺服器端,web網頁,android 手機客戶端,各種測試腳本,基本上基礎架構都已經實現,並可實際調試。由於精力有限智能控制部分還在合作開發中。

項目地址:李子/My smart home - 碼雲

碼雲 http://Gitee.com

發現更多優質開源項目:最新推薦 - 碼雲 - 開源中國

團隊流暢、高效開發:碼雲企業版 - 碼雲 - 開源中國


https://github.com/fogleman/Craft

C 寫的 Minecraft clone


看了題主的個人信息,我推測題主是接觸 programming 沒多久,如果不是的話, 說聲抱歉,下面的這些可以不用看了。

其他答案中提到的「十個C開源項目」,我不覺得其中任何一個項目適合推薦給你來閱讀。因為代碼作者並不是先全盤設計好了一個架構然後清晰流暢的順著寫出來,那樣我們只要抓住了思路,順著看下去就好。這是小說。實際上,代碼里充滿了妥協,同硬體的妥協,同某一個限定條件的妥協,同某一個需求的妥協,甚至是和社區中某一個意見的妥協。如果你沒有弄明白這裡面的一些關竅,那麼硬讀源代碼獲得的收益或許沒有你想像中的那麼大。

關於閱讀源代碼,說說我自己的理解。

「閱讀源碼」這件事似乎在國內被過分的強調了,似乎學習一個框架或者開源軟體,事無巨細的閱讀源碼是唯一的路徑,不盡然吧。「Read the f**king source」聽起來當然很酷,但是閱讀代碼並不是讀小說那樣,拿出來每一句話來欣賞其美感,而是應當像是科學實驗一般,把一個個函數解刨開,把一個個文件割裂開,不停的自問自答「為什麼要這麼寫?」搭建起函數涉及到的場景,觀察函數的運作過程。對於初學者來說,這些附帶的工作量或者背後知識中的門檻,可能要比源代碼難得多。上面這些在Coders at Work: Reflections on the Craft of Programming這本書的作者Peter Seibel在Code is not literature這篇文章中也有提到。


MicroPython源碼https://github.com/micropython/micropython

在單片機上的Python 3實現,可以學習到lexer、parser、compiler、vm等眾多知識,在GitHub上已經5000 star了

如果你同時還學Python的話,順便學習一下Python的底層實現,一舉兩得!!


感覺我的個人 star collection還是不少超級贊的C項目的 ○( ^皿^)っ


首先,好的標準是什麼?怎麼界定一個項目是好項目。

其次,如果好的標準是能夠把一個事物的來龍去脈都講清楚,最經典的項目莫過於Linux內核,夠扎進去一輩子的,整個職業生涯都不一定能完全跟蹤上這個時時刻刻還在進化的項目。


推薦閱讀:

git本地倉庫關聯多個remote,怎麼用本地一個分支向不同remote不同分支推送代碼?
如何在 GitHub 下載某個程序的特定版本(代碼)?
gitlab或github下fork後如何同步源的新更新內容?
git怎麼控制成員的許可權?
如何優雅地使用 Git?

TAG:Git | 開源 | 開源項目 | GitHub |