興趣是最好的老師,HelloGitHub 讓你對程式設計感興趣!
簡介
分享 GitHub 上有趣、入門級的開源專案。
內容包括:有趣、入門級的開源專案、開源書籍、實戰專案、企業級專案等,讓你在短時間內感受到開源的魅力,對開源和程式設計產生興趣!
以下為本期內容|每個月 28 號更新
C 專案
1、acwj:教你寫 C 語言編譯器的實戰教程。教程注重實戰循序漸進,一步步教你如何用 C 語言寫一個可以自己編譯自己(自舉)、能夠在真正的硬體上執行的 C 語言編譯器
2、zstd:快速、無損的資料壓縮演算法 Zstandard 的實現。Zstd 的壓縮比接近 lzma、lzham 和 ppmx,並且比 lza 或 bzip2 效能更好。在相似的壓縮比情況下,它解壓縮的速度比其他的演算法都要快。很多知名專案和遊戲都有這個演算法的身影,示例程式碼:
static void compress_orDie(const char* fname, const char* oname)
{
size_t fSize;
void* const fBuff = mallocAndLoadFile_orDie(fname, &fSize);
size_t const cBuffSize = ZSTD_compressBound(fSize);
void* const cBuff = malloc_orDie(cBuffSize);
/* Compress.
* If you are doing many compressions, you may want to reuse the context.
* See the multiple_simple_compression.c example.
*/
size_t const cSize = ZSTD_compress(cBuff, cBuffSize, fBuff, fSize, 1);
CHECK_ZSTD(cSize);
saveFile_orDie(oname, cBuff, cSize);
/* success */
printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname);
free(fBuff);
free(cBuff);
}
C# 專案
3、ravendb:一款快速、可靠的開源 NoSQL 資料庫
4、Files:一個全新的檔案管理器。採用 Fluent Design 和 Windows 平臺最新的 API 實現,簡約但不簡單
Go 專案
5、jql:用 Go 寫的 JSON 資料查詢工具。該工具安裝方便,語法簡單容易上手,實用示例程式碼很多比如:
# 查詢 test.json 檔案中,所有國家的名稱
cat test.json | jql '(elem "countries" (elem (keys) (elem "name")))'
[
"Poland",
"United States",
"Germany"
]
6、chanify:基於 Go 實現的向 iOS 裝置推送訊息的服務。手機上安裝好配套的 iOS 應用,然後以 Docker 的方式部署完服務,就可以通過一條命令推送指定訊息到 APP 上,是不是很方便吖
# 傳送文字訊息
$ curl --form-string "text=hello" "http://<address>:<port>/v1/sender/<token>"
# 傳送文字檔案
$ cat message.txt | curl -H "Content-Type: text/plain" --data-binary @- "http://<address>:<port>/v1/sender/<token>"
7、algorithm-pattern:LeetCode 刷題集合專案。專案從 Go 語言入門講起,總結了一套刷題模板和解題套路,示例程式碼為 Go 語言
8、imaging:Go 語言的影像處理庫。支援:調整大小、旋轉、剪下、亮度調整等功能,示例程式碼:
// 調整
dstImage128 := imaging.Resize(srcImage, 128, 128, imaging.Lanczos)
// 銳化
dstImage := imaging.Sharpen(srcImage, 0.5)
9、ebiten:Go 語言的 2D 遊戲引擎庫。通過它可以輕鬆地用 Go 語言製作出支援多平臺的 2D 遊戲,專案中還包含很多示例程式碼,幫助你快速上手
Java 專案
10、flink-recommandSystem-demo:一個基於 Flink 實現的商品實時推薦系統。可以通過這個專案瞭解和學習推薦系統的設計和流程,該系統是通過 Flink 處理日誌和統計商品熱度,將處理好的資料放入 Redis 快取。然後再將畫像標籤和實時記錄放入 HBase。在使用者請求獲取推薦時,根據使用者畫像生成商品熱度榜,並結合協同過濾和標籤兩個推薦模組,返回最終生成的商品推薦列表
11、OpenRefine:一款用於清理資料的桌面工具。通過視覺化的方式分析、整理資料,支援 Windows、Linux、Mac 作業系統。擁有查詢、過濾、去重、分析等功能,可以把雜亂的資料變成“整潔”的電子表格,還能夠將結果匯出成多種格式的檔案。不會程式設計和 SQL 的小夥伴們,也可以輕鬆分析海量資料啦!
12、jacoco:Java 程式碼測試覆蓋率庫
13、kooder:一個開源的程式碼搜尋服務。為包括 GitLab、Gitea 的程式碼託管系統提供原始碼、倉庫、Issue 的搜尋服務
JavaScript 專案
14、taro:一款 Web 輕量級的 3D 遊戲引擎。底層基於 three.js 和 cannon-es 支援 3D 剛體物理引擎
15、kutt:免費開源的短連結服務。服務基於 Node.js+Express+React 實現,支援管理連結、自定義短連結、設定連結密碼、訪問統計等功能
16、nav:一個支援 SEO 的靜態導航網站。不依賴後端的純前端專案開箱即用,簡單清爽
17、drawio:一款簡潔強大的繪圖工具。免費開源可以自行部署也可以線上使用,功能上直追 Microsoft Visio。支援流程圖、序列圖、網路拓撲圖、甘特圖、思維導圖、模型圖等,還能匯出多種格式型別比如 png、svg、PDF、HTML 和 VSDX 格式(Microsoft Visio 圖形格式)
18、npkill:快速查詢和輕鬆刪除 node_modules 資料夾的工具。還在為 node_modules 佔了很多磁碟空間而煩惱嗎?還在手動找用不到的 node_modules 目錄嗎?快來試試 npkill 吧!輕鬆地刪除 node_modules 目錄
PHP 專案
19、question2answer:採用 PHP+MySQL 實現的免費開源的問答平臺。基本上問答平臺該有的功能它都有,那麼問題來了是做個知乎還是 Stack Overflow 呢?
- 支援回答投票、評論、最佳回答、關注和關閉問題
- 完備的使用者和許可權管理
- 多語言支援
- 搜尋時的相似問題匹配
- 等等
Python 專案
20、tomato-clock:Python 寫的命令列番茄工作法定時器。程式碼僅有 100 多行,不依賴其它第三方庫
? tomato 25 minutes. Ctrl+C to exit
??---------------------------------------------- [8%] 23:4 ⏰
21、vardbg:一款能夠把 Python 程式執行過程,匯出成視訊或動圖的程式碼除錯工具。可用於動畫學演算法、製作程式碼講解視訊等場景
22、apkleaks:掃描 APK 檔案是否包含敏感資訊的命令列工具
// custom-rules.json
{
"Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
...
}
$ apkleaks -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt
23、graphene-django:讓你輕鬆地將 GraphQL 整合到 Django 專案的庫
Rust 專案
24、fselect:用類 SQL 的命令查詢檔案的命令列工具
fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
fselect size, abspath from ./tmp where size gt 2g
fselect hsize, abspath from ./tmp where size lt 8k
Swift 專案
25、awesome-ios:超棒的 iOS 開源專案集合。它非常全面包含 Objective-C、Swift 語言的專案,擁有網路、UI、JSON、資料庫、音視訊等分類,iOS 初學者尋找開源專案的好地方
26、Knot:一款 iOS 抓包工具。實現了 HTTP(S) 解析、流量解析、多格式匯出、證照管理以及過程分析等
27、SwiftUITodo:用 SwiftUI 做的 Todo 工具。這是一個示例專案幫助新手掌握 SwiftUI
其它
28、LIII:免費開源的 BT 下載工具。如果你厭倦了廣告、購買 VIP 才能提速,只想要一個簡單好用的下載工具,那你可以試試這個開源專案
29、cloudmusic-vscode:網易雲音樂 VS Code 外掛。基於網易雲網頁 API 實現,支援:
- 歌曲播放、收藏、喜歡
- 心動模式、私人 FM
- 評論(單曲、歌單...)
- 歌詞顯示
- 搜尋(熱搜/單曲/專輯/歌手...)
- 等等
30、shapez.io:一款 Steam 上的模擬建造遊戲《異形工廠》的原始碼。遊戲是在無邊的地圖上開採資源、放置設施、組合圖形、相互搭配,擴建自己的異形工廠。遊戲輕鬆但也很有挑戰性,快去試一試吧
開源書籍
31、Probabilistic-Programming-and-Bayesian-Methods-for-Hackers:《黑客的貝葉斯方法:以 Python 為例》
32、The-design-and-implementation-of-a-64-bit-os:《一個 64 位作業系統的設計與實現》
33、tensorflow-handbook:《簡明的 TensorFlow 2》,線上閱讀
機器學習
34、Real-Time-Person-Removal:在 Web 瀏覽器中實時移除人像。該專案採用 JavaScript+TensorFlow.js 實現“憑空消失”
35、AI-Expert-Roadmap:人工智慧學習路線圖
最後
如果你發現了 GitHub 上有趣的專案,就分享給大傢伙吧。
以上就是本期的所有內容了,看完還不過癮?
關注 HelloGitHub 公眾號不僅可以收到第一時間的更新。點選選單欄->往期->月刊
往期月刊所有的內容盡收眼底一次看過癮!還有更多開源專案的介紹和寶藏專案等待你的發現。