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