《HelloGitHub》第 92 期

2023-11-28 09:05:38

興趣是最好的老師,HelloGitHub 讓你對程式設計感興趣!

簡介

HelloGitHub 分享 GitHub 上有趣、入門級的開源專案。

https://github.com/521xueweihan/HelloGitHub

這裡有實戰專案、入門教學、黑科技、開源書籍、大廠開源專案等,涵蓋多種程式語言 Python、Java、Go、C/C++、Swift...讓你在短時間內感受到開源的魅力,對程式設計產生興趣!


以下為本期內容|每個月 28 號更新

C 專案

1、activate-linux:將"Activate Windows"水印移植到 Linux 系統。這是一個可以在桌面系統的右下角,顯示「啟用 Windows」 字樣的小工具,就是圖一樂。

2、kew:一款 C 語言寫的命令列音樂播放器。適用於 Linux 系統的命令列音樂播放器,支援搜尋音樂、播放列表、專輯封面等功能。

C# 專案

3、EGamePlay:一款基於 Unity 引擎的靈活戰鬥框架。這是一個靈活、通用、輕量的遊戲戰鬥/技能框架,設定可選擇 ScriptableObject 或 Excel 表格。內含 RPG、回合制、技能偵錯等範例,以及《如何實現一個戰鬥系統》的教學。

4、FreeControl:在 Windows 電腦上控制 Android 裝置的工具。該專案是基於 scrcpy、採用 C# 編寫的控制 Android 裝置的 PC 桌面工具,提供了更加簡潔的互動介面。來自 @Pdone 的分享

5、N_m3u8DL-RE:適用於 MPD/M3U8/ISM 的串流媒體下載器。該專案可以將常見的串流媒體儲存到本地,支援點播、錄製直播、自動混流等功能,適用於 Windows、Linux、macOS 作業系統。

6、Squirrel-RIFE:中文自動補幀工具。該專案是基於 RIFE 演演算法的補幀軟體,可用於去除動漫卡頓感。具有無需手動設定、高質量輸出、速度快等特點,適用於 Windows 10 及以上作業系統。

C++ 專案

7、olcNES:用 C++ 寫一個 NES 模擬器。這是一份教你用 C++ 寫 NES/FC 遊戲模擬器的視訊教學和原始碼,作者是油管大神 javidx9。

8、olive:一款免費、開源的非線性視訊剪輯工具。非線性視訊剪輯是指將圖片、音樂、特效等素材與視訊進行混合編輯,雖然該專案完全免費,但目前還處於迭代中並不穩定,適用於 Windows、macOS 和 Linux 系統。

Go 專案

9、algernon:小型、獨立的 Go Web 伺服器。該專案是用 Go 編寫的「快餐」 Web 伺服器,採用 BoltDB、Redis、MySQL 或 PostgreSQL 作為資料庫,內建 Lua 直譯器。所有功能全在一個獨立可執行檔案中,支援 Markdown 渲染、Lua 指令碼、請求限制、使用者和許可權等。

10、cheat:一款互動式的「小抄」命令列工具。該專案可以建立、編輯、檢視 *nix 系統命令的備忘錄,比如常用命令的範例和解釋。

cheat tar

# To extract an uncompressed archive:
tar -xvf '/path/to/foo.tar'

# To extract a .gz archive:
tar -xzvf '/path/to/foo.tgz'

# To create a .gz archive:
tar -czvf '/path/to/foo.tgz' '/path/to/foo/'

# To extract a .bz2 archive:
tar -xjvf '/path/to/foo.tgz'

# To create a .bz2 archive:
tar -cjvf '/path/to/foo.tgz' '/path/to/foo/'

11、devbox:為應用程式建立隔離環境的命令列工具。該專案可以建立一個可移植、隔離、用於開發的獨立 shell,無需 Docker 和虛擬機器器。比如你的專案使用 Python 和 Go 語言,用這個工具僅需一條命令就能初始化一個獨立的開發環境。

# 安裝
curl -fsSL https://get.jetpack.io/devbox | bash
# 初始化
devbox init
# 安裝 Python 和 Go
devbox add python2 go_1_18
# 啟用
devbox shell

12、faas:一款高星的功能即服務架構。該專案用容器的方式執行 Serverless 函數,讓功能即服務(FaaS)變得簡單。它可以輕鬆地將函數和微服務部署到 Kubernetes,支援自動擴縮容、自帶 Web 管理平臺、Dockerfile 和多種程式語言。

13、migrate:好用的資料庫遷移/變更工具。該專案是用 Go 寫的資料庫遷移(migrate)工具,幫你自動建立 SQL 遷移檔案並管理版本,支援 MySQL、MariaDB、PostgreSQL、SQLite、Neo4j、ClickHouse 等不同型別的資料庫。

$ migrate -source file://path/to/migrations -database postgres://localhost:5432/database up 2

Java 專案

14、graceful-response:SpringBoot 介面優雅響應處理器。該專案通過註解的方式,優化 Controller 層的程式碼,完成統一返回值封裝、全域性例外處理、異常與錯誤碼對映等功能。

public class Controller {
    
    @GetMapping("/query")
    @ResponseBody
    public Data query(Parameter params) {
            Data data = service.query(params);
           return data;
    }
}

JavaScript 專案

15、Cronicle:一個簡單的任務排程和執行平臺。該專案是用 Node.js 寫的 cron 替代品,它開箱即用、自帶 Web 介面、無需資料庫,提供了執行 shell 命令、實時統計、自動故障轉移、自動重試、多時區等功能。

16、earth:一個視覺化全球天氣實況的專案。該專案以視覺化的方式展示了全球的天氣情況,提供了風、溫度、相對溼度等多種天氣資料,以及風、洋流和波浪的動畫效果。

17、javascript-testing-best-practices:JavaScript 和 Node.js 的測試最佳實踐。這是一份提升 JavaScript & Node.js 專案穩定性的指南,包括前/後端測試、持續整合、工具等方面。

18、MikuTools:一個輕量級的線上工具集合。該專案是用 Vue + Nuxt.js 構建的線上工具箱,開源版本僅保留了部分無需後端的功能。

19、page-spy-web:像使用谷歌控制檯一樣開始遠端偵錯。這是一款用來偵錯遠端 Web 專案的工具,提供了 Docker、NPM 等多種部署方案。

Kotlin 專案

20、ponymusic:開源的 Android 線上音樂播放器。該專案是用 Kotlin 語言寫的 Android 音樂播放器,支援新增和播放本地音樂、通知欄控制、同步網易雲歌單、每日推薦、搜尋歌曲和歌單等功能。

Python 專案

21、example-code-2e:《流暢的 Python(第 2 版)》的範例程式碼。《流暢的 Python》是深受 Python 程式設計師喜愛的經典之作,該書可以幫助理解 Python 語言的核心特性和底層邏輯。但這裡只有範例程式碼,書需要自行購買。

22、LaTeX-OCR:將數學公式轉化成 LaTeX 程式碼。該專案可以將圖片、剪貼簿中的圖片和螢幕截圖,轉化成對應的 LaTeX 程式碼,提供了命令列、庫、GUI、Docker 多種使用方式。

from PIL import Image
from pix2tex.cli import LatexOCR

img = Image.open('path/to/image.png')
model = LatexOCR()
print(model(img))

23、Rickrack:一款開源的調色盤桌面應用。該專案是基於 PyQt5 的調色盤應用程式,旨在幫助使用者輕鬆實現色彩的協調與搭配。它免費、無需註冊、沒有任何限制,支援離線使用、提取顏色、調色等功能。開箱即用無論你是繪畫愛好者還是專業使用者,都可以輕鬆上手並行揮創意。

24、sqlmap:強大的 SQL 注入工具。這是一個 Python 寫的滲透測試工具,可以自動檢測和利用 SQL 注入漏洞,獲得資料庫伺服器的許可權。它提供了強大的檢測引擎和多種特性,包括識別資料庫型別和版本、列舉使用者、提權、獲取資料等。

25、XHS-Downloader:小紅書圖文/視訊採集工具。該專案是基於 Python Requests 庫實現的小紅書作品採集器,支援獲取圖文/視訊資訊、下載完整作品、批次下載等功能,提供了 Windows 可執行檔案和原始碼執行兩種方式。

Rust 專案

26、git-cliff:自由可客製化的變更紀錄檔生成器。該專案可以自定義解析規則,自動從 Git 歷史記錄中生成 Changelog 檔案。

27、proc-macro-workshop:學習如何編寫 Rust 過程宏。Rust 的過程宏(procedural macros)是一種高階用法,可以理解為生成 Rust 程式碼的 Rust 程式碼。該專案包含 5 個範例專案,其中 3 個是作者在工作中實現的宏。

28、ruff:非常快的 Python 程式碼風格檢查和格式化工具。該專案採用 Rust 編寫,比 Python 的 Flake8 和 Black 快 10-100 倍,支援通過 pip 安裝、內建 700+ 規則、相容 Python 3.12、自動糾錯等功能。

Swift 專案

29、secretive:一款儲存和管理 SSH 金鑰的應用。該專案是可以將 SSH 金鑰儲存在蘋果晶片安全隔離區(Secure Enclave)的工具。安全隔離區是指整合到 Apple 片上系統 (SoC) 的專用安全子系統,它獨立於主處理器,可提供額外的安全保護。

其它

30、Awesome-Love-Code:表白程式碼收藏館。該專案收集了 50+ 個用於表白的程式碼和程式,涵蓋 Web、Python、C/C++、C# 等程式語言。

31、dpoint:一款開源數位手寫筆。該專案通過攝像頭跟蹤和慣性測量,實現了 6DoF 輸入。觸控筆可用於任何平面,僅需消費級的攝像頭配合使用。

32、linux-router:將 Linux 作為路由器的指令碼。這是一個 Linux 軟路由器的 shell 指令碼,它可以通過一條命令將 Linux 裝置作為路由器,提供網際網路共用、DNS 伺服器、WiFi 熱點等功能。來自 @GunVeda 的分享

33、nerd-fonts:解決字型缺失問題的專案。這是一個收集了 3600+ 圖示的字型集合和修補程式工具,該專案不是一個字型,而是一個可以將多種字型中的圖示,作為修補程式新增到目標字型中的工具。

34、RehabilitationGuide:程式設計師頸椎病腰突康復指南。該專案是作者從確診頸椎病、腰椎間盤突出到康復的經驗和方法分享。來自 @九旬UKDhO 的分享

35、smhasher:測試 Hash 函數質量和速度的專案。該專案展示了 200+ 種非加密雜湊函數,在分佈、衝突和效能等方面的測試結果。

開源書籍

36、typescript-book:《簡明的 TypeScript 書》。該書全面、精練地介紹了 TypeScript 語言,涵蓋了 TypeScript 語言的入門、型別系統、基礎語法和高階用法等知識。

機器學習

37、cleanlab:自動檢測資料集中錯誤資料和標註的框架。該專案基於置信學習(confident learning,CL)演演算法,實現了自動檢測出機器學習資料集中的各種問題,提高資料集質量訓練出更好的模型,支援影象、文字、音訊型別的資料。

38、ComfyUI:一個基於節點流程的 AI 繪圖操作介面。該專案將 Stable Diffusion 流程分成多個節點,通過拖拽各種節點構成影象生成到處理的工作流,支援 Stable Diffusion 1.x 和 2.x 版本、組合各種模型、根據 PNG 圖片生成完整的工作流等功能。

39、dvc:一款針對 AI 專案的資料版本管理工具。基於 Git 的資料版本管理工具,版本化機器學習專案的資料和模型。可用於比較程式碼、資料、引數、模型或效能圖,共用機器學習專案的資料或重現結果。

40、ml-engineering:機器學習:LLM/VLM 訓練與工程。該專案是作者訓練開源 BLOOM-176B 大模型和 IDEFICS-80B 多模態模型的經驗總結,還提供了大量可以直接拿來用的程式碼和指令碼,希望能夠幫助你成功訓練大型語言模型和多模態模型。

41、screenshot-to-code:將截圖轉化為 HTML 程式碼的工具。該專案可以將螢幕截圖轉化為 HTML/JS/Tailwind CSS 程式碼,它使用 GPT-4 Vision 生成程式碼、DALL-E 3 生成相似的圖片。

最後

感謝參與分​享開源專案的小夥伴們,歡迎更多的開源愛好者來 HelloGitHub 自薦/推薦開源專案。如果你發現了 GitHub 上有趣的專案,就點選這裡分享給大傢伙吧!

本期有你感興趣的開源專案嗎?如果有的話就留言告訴我吧~如果還沒看過癮,可以點選閱讀往期內容。

那麼,下個月 28 號 不見不散,完結撒花