GitHub上有不錯(cuò)的 C 開(kāi)源項(xiàng)目?
大學(xué)時(shí)接觸的第一門(mén)語(yǔ)言就是 C語(yǔ)言,雖然距 C語(yǔ)言創(chuàng)立已過(guò)了40多年,但其經(jīng)典性和可移植性任然是當(dāng)今眾多高級(jí)語(yǔ)言中不可忽視的,想要學(xué)好其他的高級(jí)語(yǔ)言,最好是先從掌握 C語(yǔ)言入手。
今天老逛盤(pán)點(diǎn) GitHub 上不錯(cuò)的 C語(yǔ)言 開(kāi)源項(xiàng)目,分別是:
1. 云存儲(chǔ)系統(tǒng)
2. 分布式文件系統(tǒng)
3. 太空侵略者復(fù)刻版
4. C語(yǔ)言教程
5. Nginx、Redis
01. 云存儲(chǔ)系統(tǒng)
Seafile 是一個(gè)用 C 語(yǔ)言編寫(xiě)的云存儲(chǔ)系統(tǒng),具有隱私保護(hù)和團(tuán)隊(duì)協(xié)作功能。文件的集合稱為庫(kù),每個(gè)庫(kù)都可以單獨(dú)同步。也可以使用用戶選擇的密碼進(jìn)行加密。
同時(shí),Seafile 還允許用戶創(chuàng)建組并輕松地將文件共享到組中。你可以使用 seafile 快速構(gòu)建自己的私有網(wǎng)盤(pán)。
地址:https://github.com/haiwen/seafile
02. 分布式文件系統(tǒng)
FastDFS 是一款開(kāi)源的分布式文件系統(tǒng),功能主要包括:文件存儲(chǔ)、文件同步、文件訪問(wèn)等,解決了文件大容量存儲(chǔ)和高性能訪問(wèn)的問(wèn)題。FastDFS 特別適合以文件為載體的在線服務(wù),如圖片、視頻、文檔等等。
FastDFS用C語(yǔ)言實(shí)現(xiàn),支持 Linux、FreeBSD、MacOS 等類(lèi) UNIX 系統(tǒng)。FastDFS 類(lèi)似 google FS,屬于應(yīng)用級(jí)文件系統(tǒng),不是通用的文件系統(tǒng),只能通過(guò)專(zhuān)有 API 訪問(wèn),目前提供了 C 和 Java SDK,以及 PHP 擴(kuò)展 SDK。
FastDFS 為互聯(lián)網(wǎng)應(yīng)用量身定做,解決大容量文件存儲(chǔ)問(wèn)題,追求高性能和高擴(kuò)展性。FastDFS 可以看做是基于文件的 key value 存儲(chǔ)系統(tǒng),key 為文件 ID,value 為文件內(nèi)容,因此稱作分布式文件存儲(chǔ)服務(wù)更為合適。
FastDFS 的架構(gòu)比較簡(jiǎn)單,如下圖所示:
地址:https://github.com/happyfish100/fastdfs
03. 太空侵略者復(fù)刻版
開(kāi)源項(xiàng)目 si78c,用 C 語(yǔ)言精準(zhǔn)復(fù)現(xiàn) 1978 年經(jīng)典街機(jī)游戲《太空侵略者》。該項(xiàng)目從原始游戲的 ROM 中加載各種樣式的小精靈和其他數(shù)據(jù),但是沒(méi)有使用原始游戲的邏輯代碼。
si78c 用 C 語(yǔ)言重新復(fù)現(xiàn)了游戲邏輯,可以讓你更容易的理解原始系統(tǒng)內(nèi)部的工作原理。它不是對(duì)《太空侵略者》的模仿,而是一種恢復(fù)。
地址:https://github.com/loadzero/si78c
04. 游戲模擬器 mGBA
mGBA 是用于運(yùn)行 Game Boy Advance 游戲的模擬器。它旨在比許多現(xiàn)有的 Game Boy Advance 模擬器更快、更準(zhǔn)確,并添加其他模擬器所缺乏的功能。它還支持 Game Boy 和 Game Boy Color 游戲。
可以在 mgba.io 上找到最新的新聞和下載。
地址:https://github.com/mgba-emu/mgba
05. C 語(yǔ)言教程
CNote 致力于打造最易懂的 C 語(yǔ)言入門(mén)教程,讓天下沒(méi)有難學(xué)的 C 語(yǔ)言。同時(shí),CNote 配套視頻保姆級(jí)視頻教程共計(jì) 170 節(jié),學(xué)不會(huì),算我輸。
地址:https://github.com/coderit666/CNote
06. Nginx
Nginx 是基于 C 語(yǔ)言編寫(xiě)的開(kāi)源、高性能、高可靠的 Web 和反向代理服務(wù)器,而且支持熱部署,幾乎可以做到 7 * 24 小時(shí)不間斷運(yùn)行,即使運(yùn)行幾個(gè)月也不需要重新啟動(dòng),還能在不間斷服務(wù)的情況下對(duì)軟件版本進(jìn)行熱更新。
性能是 Nginx 最重要的考量,其占用內(nèi)存少、并發(fā)能力強(qiáng)、能支持高達(dá) 5w 個(gè)并發(fā)連接數(shù),最重要的是, Nginx 是免費(fèi)的并可以商業(yè)化,配置使用也比較簡(jiǎn)單。
地址:https://github.com/nginx/nginx
07. Redis
Redis 是基于 C語(yǔ)言編寫(xiě)的開(kāi)源存儲(chǔ)數(shù)據(jù)庫(kù)、支持網(wǎng)絡(luò)、可基于內(nèi)存、分布式、可選持久性的鍵值對(duì)(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的 API。
地址:https://github.com/redis/redis