興趣是最好的老師,HelloGitHub 讓你對程式設計感興趣!
簡介
HelloGitHub 分享 GitHub 上有趣、入門級的開源專案。
github.com/521xueweihan/HelloGitHub
這裡有實戰專案、入門教程、黑科技、開源書籍、大廠開源專案等,涵蓋多種程式語言 Python、Java、Go、C/C++、Swift...讓你在短時間內感受到開源的魅力,對程式設計產生興趣!
以下為本期內容|每個月 28 號更新
C 專案
1、deskhop:基於樹莓派的雙機滑鼠鍵盤共享方案。這是一款用於快速切換滑鼠和鍵盤的桌面切換工具,解決了使用者在多臺計算機之間共享鍵盤和滑鼠時遇到的繁瑣和延遲問題。它透過硬體中介裝置,支援在不同作業系統(Linux、macOS、Windows)之間透過拖動滑鼠或使用快捷鍵實現輸入的無縫切換。該專案完全開源,且不需要安裝額外的驅動。硬體則是基於 Raspberry Pi Pico 和 USB 輸入/輸出協議,支援自定義配置並提供多種附加功能,如慢速滑鼠模式、螢幕鎖定和遊戲模式。來自 @無間之鐘 的分享
2、kyanos:深入核心的網路流量分析工具。這是一個基於 eBPF 的網路問題分析工具,能夠實時監控和分析 HTTP、Redis 和 MySQL 請求。它支援強大的流量過濾功能,可根據程序、容器、協議資訊和耗時等條件進行精確過濾,並提供多維度聚合抓取的資料包資訊,適用於排查遠端服務慢查詢等問題。
3、minisign:簡單易用的檔案簽名工具。這是一個開箱即用的檔案數字簽名與驗證工具,只需要簡單的命令即可生成和驗證檔案簽名。它基於 Ed25519 公鑰簽名系統,提供可靠的檔案完整性驗證功能,適用於軟體分發和檔案共享等場景。
# 建立金鑰
minisign -G
# 對檔案進行簽名
minisign -Sm HelloGitHub.txt
# 驗證簽名
$ minisign -Vm HelloGitHub.txt -P xxxx
C# 專案
4、AvaloniaVisualBasic6:經典的 VB6 IDE 跨平臺重生計劃。該專案使用 C# 語言和 Avalonia 框架復刻了經典的 Visual Basic 6 IDE,支援建立、儲存、載入和執行 VB6 語言的專案,能夠在 Windows、macOS、Linux 和瀏覽器中執行。來自 @39499740 的分享
5、FileConverter:右鍵輕鬆轉換和壓縮檔案的工具。這是一個專為 Windows 設計的檔案轉換和壓縮工具,使用者可以透過右鍵選單輕鬆完成檔案格式轉換和壓縮操作。它完全免費開源,支援多種檔案格式、批次處理等功能,並提供包括中文在內的多語言支援。
C++ 專案
6、carla:開源的自動駕駛研發模擬平臺。這是一款用於自動駕駛研究的開源模擬器,專為自動駕駛系統的開發、訓練和驗證提供虛擬環境。它包含免費的數字資產庫,包括城市佈局、建築和車輛模型等,支援靈活配置感測器套件和環境條件。還提供了容易上手的 Python API,方便開發者進行車輛控制、感測器配置和環境引數調整。
7、PrismLauncher:開源的 Minecraft 啟動器。該專案是基於 MultiMC 開發的 Minecraft 啟動器,旨在幫助使用者輕鬆管理多個 Minecraft 版本和例項。它最佳化了啟動器的使用體驗,支援快速切換不同版本、模組配置和遊戲設定,相容 Windows、Linux 和 macOS 平臺。
8、zeal:實用的離線文件瀏覽工具。該專案是受 Dash 啟發、專為開發者打造的離線文件查詢工具,無需聯網即可訪問各種程式語言和框架的 API 文件。它提供簡潔的介面和多種編輯器外掛,並支援自定義文件的建立和匯入,適合在沒網的環境下檢視技術文件。
Go 專案
9、dpanel:輕量級的 Docker 視覺化管理皮膚。這是一款專為國內使用者設計的 Docker 視覺化管理皮膚,採用全中文介面。它安裝簡單且資源佔用低,執行在容器內部對宿主機無侵入,支援容器管理、映象管理、檔案管理以及 Compose 管理等功能。來自 @donknap 的分享
10、go-blueprint:快速生成 Go Web 專案結構的工具。這是一個用於快速搭建 Go 語言 Web 專案的命令列工具,整合了 Chi、Gin、Fiber、Echo 等多種流行的 Go 框架。它支援選擇 MySQL、Postgres、Redis 等主流資料庫,還提供了 WebSocket 和 Docker 等高階設定。使用者只需選擇技術棧,即可生成一套完整的 Go Web 專案架子。
11、lute:對中文更友好的 Markdown 引擎。這是一個用 Go 語言編寫的 Markdown 引擎,實現了最新的 GFM/CM 規範。它是將 Markdown 文字轉換成一個抽象語法樹(AST),無需正規表示式解析速度更快,支援 GFM/CM 規範、內建程式碼高亮、術語修正、格式化(中英文間自動插入空格)和 Emoji 解析等功能。來自 @兩雙筷子sqldc 的分享
func main() {
luteEngine := lute.New() // 預設已經啟用 GFM 支援以及中文語境最佳化
html:= luteEngine.MarkdownStr("demo", "**Lute** - A structured markdown engine.")
fmt.Println(html)
// <p><strong>Lute</strong> - A structured Markdown engine.</p>
}
12、OliveTin:極簡的 Shell 命令 Web 管理平臺。該專案提供了一個簡單直觀的 Web 介面,讓使用者能夠快速執行預先設定好的 Shell 命令。它開箱即用、配置簡單、佔用資源少,可以將複雜的命令簡化成網頁上的一個按鈕。
13、wanderer:開源的探險軌跡記錄與分享平臺。該專案是用於記錄和管理使用者的戶外探險軌跡的 Web 平臺,幫助你儲存珍貴的行程資料。它採用 Go+Svelte 開發,提供上傳、儲存、檢視(多種檢視)和分享冒險軌跡的功能,並支援自託管。
JavaScript 專案
14、moodist:免費、高顏值的白噪音網站。這是一個有助於專注與放鬆的聽覺網站,無需註冊完全免費。它介面簡潔、操作方便,內建 75 種白噪音,使用者可根據個人喜好自由選擇與組合,找到適合自己的聲音環境。同時,Moodist 還支援定時關閉、番茄時鐘、快捷鍵等功能。
15、rot.js:開發 Roguelike 遊戲的 JavaScript 工具包。這是一個無依賴的 JavaScript 庫,專為開發 Roguelike(肉鴿)遊戲而設計,包含地圖生成、隨機數生成、路徑尋找、按鍵處理和照明等多個模組。
16、slugify:將字串轉化成 URL 友好的 JS 庫。該專案是用於將字串轉換為適合在 URL 中使用的格式,輸出由小寫字母、數字和短橫線組成的字串,不含空格和特殊字元,這種格式有助於搜尋引擎最佳化(SEO)。
var slugify = require('slugify')
slugify('some string') // some-string
// if you prefer something other than '-' as separator
slugify('some string', '_') // some_string
17、starlight:基於 Astro 的一站式文件解決方案。該專案是基於 Astro 框架打造的文件主題,可用於快速搭建和部署文件網站。它介面美觀、開箱即用、訪問速度快,支援網站導航、搜尋、國際化、SEO 和各種外掛。來自 @小小修真者 的分享
18、xiaoju-survey:企業級的問卷調查平臺。這是一款免費且專業的調研系統,旨在為個人和企業提供一站式產品級的調研解決方案。它前後端均已開源,並支援 Docker 一鍵部署,內建了多種題型和模版,支援邏輯編排、自定義品牌、許可權管理、資料分析和匯出等功能,可用於建立問卷、考試、測評和複雜表單。
Kotlin 專案
19、ab-download-manager:Kotlin 開發的下載工具。這是一款開源的桌面下載工具,專為提供便捷快速的下載體驗而設計。它擁有現代化的介面和更快的下載速度,支援下載佇列、速度限制和瀏覽器外掛功能,相容 Windows 和 Linux 平臺。來自 @DeShuiYu 的分享
20、Olauncher:極簡的 Android 啟動器。這是一款免費、無廣告的 Android 啟動器,主螢幕上最多可設定 8 個應用,提供極簡的 Android 使用體驗,並支援手勢、雙擊鎖屏和每日桌布等功能。
Python 專案
21、ASCII-generator:生成文字圖的 Python 庫。該專案是一款將圖片和影片轉換為 ASCII 藝術風格作品的工具,即用字元藝術化地表達影像內容。它使用簡單,支援將圖片轉換為文字或 ASCII 風格圖片,以及將影片轉換為 ASCII 風格影片,並提供顏色選擇等多種功能。
22、icloud_photos_downloader:iCloud 照片下載工具。這是一款用 Python 開發的工具,可用於批次下載 iCloud 照片。它提供了複製、同步和移動三種操作模式,支援 Live Photos、自動刪除重複資料、增量下載等功能,適合用於 iCloud 照片遷移和備份等場景。
23、imagehash:基於雜湊值識別相似影像的 Python 庫。該專案的演算法不同於傳統的加密雜湊演算法(如 MD5、SHA-1),它專注於影像內容的相似度分析,對有細微不同的圖片可生成相似的雜湊值,用於計算圖片相似度,支援平均雜湊、感知雜湊、差分雜湊等演算法,適用於快速識別版權圖片等場景。
from PIL import Image
import imagehash
# 計算第一個影像的雜湊值
hash = imagehash.average_hash(Image.open('tests/data/imagehash.png'))
print(hash)
# 雜湊值:ffd7918181c9ffff
# 計算第二個影像的雜湊值
otherhash = imagehash.average_hash(Image.open('tests/data/peppers.png'))
print(otherhash)
# 雜湊值:9f172786e71f1e00
# 比較兩個影像雜湊值是否相等
print(hash == otherhash) # False
# 計算並輸出雜湊值的漢明距離
print(hash - otherhash) # 33 漢明距離(差異度)
24、mopidy:Python 寫的音樂伺服器。這是一個易擴充套件的 Python 音樂伺服器,支援掃描和播放本地音樂,並整合多個線上音樂流媒體,還可透過外掛擴充套件音樂源、管理介面和線上播放器等功能。
25、pyarmor:強大的 Python 指令碼加密工具。這是一個用於對 Python 指令碼進行混淆處理的命令列工具,僅需一條命令即可完成加密操作。它提供豐富的加密選項,用來平衡安全與效能,支援將加密後的指令碼繫結到特定機器、設定加密有效期和 Themida 保護等功能。來自 @Xuefeng Xu 的分享
Rust 專案
26、kanata:跨平臺的鍵盤重對映工具。這是一個用 Rust 語言開發的鍵盤重對映工具,使用者可根據自身需求自定義鍵盤佈局和功能,支援點選按住、組合鍵程式設計、設定按鍵響應速度,適用於 Windows、Linux 和 macOS 系統。
27、surrealdb:端到端的雲原生資料庫。這是一個用 Rust 開發的多模型資料庫,支援表格(Table)、文件(Documents)和圖(Graph)資料模型。它既可以作為資料庫使用,也可作為 API 後端服務,支援 SQL、GraphQL、ACID 事務、圖查詢和全文索引等多種查詢方式。
28、tauri:Rust 驅動的跨平臺桌面應用開發框架。這是一個用於構建更小、更快、更安全的桌面和移動應用的框架,支援 macOS、Windows、Linux、Android 和 iOS 平臺。它允許使用前端框架構建使用者介面,並內建應用打包器、系統托盤圖示和原生通知等功能。來自 @DeShuiYu 的分享
Swift 專案
29、Off-Day:休息日鬧鐘不響的 iOS 應用。這是一個專為 iOS 使用者開發的節假日鬧鐘應用,內建多個公共假期模板,使用者可以輕鬆標記假期,實現自動管理工作日和假期的鬧鐘設定,確保休息日不再被鬧鐘打擾。
人工智慧
30、krita-ai-diffusion:Krita 的 AI 繪畫助手外掛。這是一個專為 Krita 繪畫軟體開發的 AIGC 外掛,旨在提供更便捷和可控的影像生成體驗。使用者只需選擇區域並輸入文字提示,即可輕鬆實現影像填充、擴充套件、放大、新增和刪除物件等操作,支援本地執行、Stable Diffusion、ControlNet、IP-Adapter 和自定義檢查點等功能。
31、netron:跨平臺的機器學習模型檢視工具。這是一個神經網路、深度學習和機器學習模型的視覺化工具,支援多種模型格式,包括 ONNX、TensorFlow Lite、Core ML、Keras、Caffe、Darknet 和 PyTorch 等。
32、Perplexica:AI 驅動的搜尋引擎工具。這是一個開源的 AI 搜尋引擎工具,靈感來源於 Perplexity AI。它結合了 SearxNG 和大語言模型(LLMs)等技術,能夠理解你的問題並深入網際網路查詢答案,可作為傳統搜尋引擎的替代品。
33、TensorRT-YOLO:靈活易用的 YOLO 部署工具。這是一款專為 NVIDIA 裝置最佳化的 YOLO 部署工具。它透過整合 TensorRT 外掛和 CUDA 技術,提供 C++ 和 Python API,顯著提升了推理速度和易用性,支援多種 YOLO 版本,適用於目標檢測、例項分割、姿態識別、旋轉目標檢測和影片分析等多種場景。來自 @Laugh 的分享
import cv2
from tensorrt_yolo.infer import DeployDet, generate_labels_with_colors, visualize
# 初始化模型
model = DeployDet("yolo11n-with-plugin.engine")
# 載入圖片
im = cv2.imread("test_image.jpg")
# 模型預測
result = model.predict(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))
print(f"==> detect result: {result}")
# 視覺化
labels = generate_labels_with_colors("labels.txt")
vis_im = visualize(im, result, labels)
cv2.imwrite("vis_image.jpg", vis_im)
其它
34、BewlyBewly:最佳化 bilibili 網站介面的瀏覽器外掛。這是一個第三方的 B 站瀏覽器外掛,透過最佳化 bilibili 網站的介面來提升使用者體驗,支援 Chrome、Edge 和 Firefox 瀏覽器。
35、frpc-desktop:跨平臺的 frp 桌面客戶端。該專案是內網穿透工具 frp 的桌面客戶端,更方便地實現內網穿透。它開箱即用、介面清爽,支援開機啟動、多使用者、配置匯入和匯出等功能,適用於 Windows、Linux 和 macOS 平臺。來自 @蠢🐷 的分享
36、keeptrack.space:衛星資料 3D 視覺化工具。這是一個為非專業人士開發的開源天體力學工具,支援檢視衛星資料、模擬衛星發射和解體等功能,適合用於教育和科普等場景。
37、openhaystack:利用蘋果網路實現物品追蹤的框架。該專案是基於蘋果的 Find My 網路,實現跨裝置的定位與追蹤。它透過將支援藍芽的裝置轉化為類似 AirTag 的追蹤器,輕鬆定位個人物品的位置,方便找回。
38、ping-clock:顯示網路延遲的時鐘。這是一個自制的時鐘,用於顯示 ping 指令的響應時間,整體造價約為 150 歐元。
39、spotube:開源的 Spotify 客戶端。該專案是基於 Flutter 開發的 Spotify 客戶端,完全免費且無廣告。它使用 Spotify、JioSaavn 和 YouTube 作為音樂源,使用者無需登入即可自由下載音樂,支援桌面和移動裝置。
開源書籍
40、copenhagen:《Web 應用認證實現指南》。這是一本介紹如何在 Web 應用中實現認證(auth)的書籍,內容涵蓋設計認證流程、儲存使用者憑據、保護使用者資料等方面的指導與建議。
41、php-the-right-way:《PHP: The Right Way》。這是一本適合初學者進階的 PHP 書籍,介紹了 PHP 的最佳實踐和編碼規範,已被翻譯成包括中文在內的多國語言。
最後
感謝參與分享開源專案的小夥伴們,歡迎更多的開源愛好者來 HelloGitHub 自薦/推薦開源專案。如果你發現了 GitHub 上有趣的專案,就點選這裡分享給大傢伙吧!
本期有你感興趣的開源專案嗎?如果有的話就留言告訴我吧~如果還沒看過癮,可以點選閱讀往期內容。
感謝您的閱讀,如果覺得本期內容還不錯的話 求贊、求分享 ❤️