程序員的開源月刊《HelloGitHub》第61期


興趣是最好的老師,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 公眾號不僅可以收到第一時間的更新。點擊菜單欄->往期->月刊

往期月刊所有的內容盡收眼底一次看過癮!還有更多開源項目的介紹和寶藏項目等待你的發現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM