《HelloGitHub》第 95 期

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

簡介

HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。

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

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


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

C 項目

1、audacity:一款免費、開源的音頻編輯工具。該項目是最受歡迎的開源音頻編輯軟件之一,它擁有容易上手的界面,提供了音頻的編輯和錄製功能,支持多語言、錄音、多音軌混音以及雜音消除等特性,適用於 Windows、macOS、GNU/Linux 操作系統。來自 @ziming012 的分享

2、VeraCrypt:一款開源的磁盤加密軟件。該項目是基於知名、已停止維護的 TrueCrypt 開發,修復了已知的許多漏洞和安全問題。經過多年的迭代,VeraCrypt 的功能更加強大。它支持動態加密系統分區、硬件加速、隱藏加密容器、多重認證等功能,適用於 Windows、Linux 和 macOS 平臺,提供了跨平臺的硬盤加密開源解決方案。

C# 項目

3、Jackett:一個支持磁力資源聚合搜索的工具。該項目能夠將多個私有和公共的 BT 站點轉化爲統一的 API,並提供了一個簡易的 Web 頁面,方便統一管理搜索結果和下載任務。

C++ 項目

4、endless-sky:一款 2D 太空交易和戰鬥遊戲。這是一款免費、開源的太空探索類遊戲。玩家將扮演一位小型宇宙飛船的艦長,在沙盒式的太空環境中展開探險。通過做任務、運送乘客或貨物、護航、交易或掠奪敵方飛船,玩家可以賺取金錢,進而購買更強大的飛船並升級武器與引擎,探索更廣闊的太空。遊戲對硬件配置要求低,支持 Windows、Linux 和 macOS 平臺。

5、Hyprland:一個靈活、強大的 Wayland 合成器。這是一個高度可定製的動態平鋪 Wayland 合成器,用於 Linux 系統的自定義桌面環境。Wayland 是新一代的 Linux 桌面後端服務器協議。該項目提供了多應用程序窗口管理、自動調整、切換和切分窗口的功能。它還支持多顯示器設置、自定義外觀和豐富的插件擴展。

6、images:一個緩存和調整圖像尺寸的服務。這個項目是用 C++ 編寫的圖像處理服務,使用了 Nginx、libvips 和 Cloudflare 等技術。它具備調整圖像大小和加速訪問的功能,支持多種圖像格式,包括 JPEG、PNG、BMP、GIF、TIFF、WebP、PDF 和 SVG 等。來自 @孤膽槍手 的分享

<!-- 源圖標地址:wsrv.nl/lichtenstein.jpg -->
<img src="//wsrv.nl/?url=wsrv.nl/lichtenstein.jpg&w=300&h=300">

7、Shell:一款強大的 Windows 上下文菜單管理工具。這項目是一個用於管理 Windows 文件資源管理器上下文菜單的程序。簡單來說,就是擴展了 Windows 右鍵菜單的功能。該工具免費、開源、無廣告、輕巧,支持所有文件系統對象,如文件、文件夾、桌面和任務欄。它提供了一系列提升效率的功能,包括拷貝文件地址、快速打開目錄、終端打開、自定義外觀以及複雜的嵌套菜單等。

CSS 項目

8、hyperui:免費的 Tailwind CSS 組件集合。該項目提供了一系列適用於網站、營銷和電商等網站的免費 Tailwind CSS 組件。這些組件支持深色模式、移動端適配和 LTR,複製代碼即可使用。

Go 項目

9、besticon:獲取網站 favicon 圖標的服務。該服務使用 Go 語言編寫,用於獲取目標網站 favicon.ico 地址。它特別適用於導航類網站,因爲它可以很方便地從源站點上獲取圖標,即使在找不到圖標的情況下,也會返回一個站點名稱首字母的灰色圖標。來自 @Liang INX 的分享

10、decimal:解決小數精度問題的 Go 庫。該項目旨在解決浮點數類型在計算過程中,可能出現的精度丟失問題。它提供了一個名爲 Decimal 的數據類型,支持常見的加法、減法、乘法和除法運算,保證結果不會丟失精度,同時還提供了四捨五入、取整和序列化等功能。

package main

import (
	"fmt"
	"github.com/shopspring/decimal"
)

func main() {
	price, err := decimal.NewFromString("136.02")
	if err != nil {
		panic(err)
	}

	quantity := decimal.NewFromInt(3)

	fee, _ := decimal.NewFromString(".035")
	taxRate, _ := decimal.NewFromString(".08875")

	subtotal := price.Mul(quantity)

	preTax := subtotal.Mul(fee.Add(decimal.NewFromFloat(1)))

	total := preTax.Mul(taxRate.Add(decimal.NewFromFloat(1)))

	fmt.Println("Subtotal:", subtotal)                      // Subtotal: 408.06
	fmt.Println("Pre-tax:", preTax)                         // Pre-tax: 422.3421
	fmt.Println("Taxes:", total.Sub(preTax))                // Taxes: 37.482861375
	fmt.Println("Total:", total)                            // Total: 459.824961375
	fmt.Println("Tax rate:", total.Sub(preTax).Div(preTax)) // Tax rate: 0.08875
}

11、gocv:基於 OpenCV 的 Go 語言計算機視覺庫。OpenCV 是一個開源、跨平臺的計算機視覺庫,多用於做圖像處理、視頻採集和分析。該項目是 OpenCV 的 Go 語言封裝庫,讓開發者可以使用 Go 語言調用 OpenCV 庫,具有支持多平臺、OpenCV 4+ 和 GPU 硬件加速等特性。

package main

import (
	"gocv.io/x/gocv"
)

func main() {
	// 打開攝像頭
	webcam, _ := gocv.OpenVideoCapture(0)
	// 新建 GUI 窗口
	window := gocv.NewWindow("Hello")
	img := gocv.NewMat()
	// 顯示視頻
	for {
		webcam.Read(&img)
		window.IMShow(img)
		window.WaitKey(1)
	}
}

12、goreleaser:快速、優雅地發佈 Go 應用。這是一個 Go 項目打包、簽名和發佈的工具,支持自動發佈到 GitHub、GitLab 和 Gitea 平臺、創建 Docker 鏡像、Linux 軟件包和 Homebrew 等功能,可在本地運行也支持 CI/CD 系統,但免費版不支持構建 macOS 和 Windows 安裝包。

13、termdash:一個跨平臺、可定製的終端儀表盤。該項目提供了豐富的終端小部件,如按鈕、進度條、圖表等,可用於創建各種交互式終端工具。它支持 UTF-8 編碼、鼠標事件和自定義佈局等功能,能夠快速構建出擁有好看界面的終端應用。

Java 項目

14、winlator:在 Android 上運行 Windows 遊戲的模擬器。這是一個 Android 應用,可以讓你使用 Wine 和 Box86/Box64 來運行 Windows 應用和遊戲,實現在手機上暢玩各種經典的 PC 遊戲。

JavaScript 項目

15、excalidraw:手繪風格的白板 Web 應用。這是一款完全免費、開源的基於無限畫布的白板 Web 應用,用戶可以在上面創建手繪風格的作品。支持包括中文在內的多種語言,提供了自由繪製、多種工具、導出 PNG、實時協作、共享鏈接、自動保存等功能。

16、jsoneditor:在線的 JSON 編輯器。該項目是一個基於 Web 的 JSON 編輯器,可用於查看、編輯、格式化和驗證 JSON。它支持樹形編輯器、代碼編輯器和純文本等模式,不僅可以直接在線使用,還可作爲組件集成到項目中。

17、reactjs-interview-questions:前端面試 React 高頻問題和答案。該項目涵蓋了一系列 React 相關的面試問題和答案,內容涉及基礎知識、組件、狀態管理、生命週期以及性能優化等方面。

18、super-productivity:一款先進的待辦事項列表應用。超級生產力是一款用 TypeScript 開發的高級 TODO 應用,旨在幫助用戶規劃任務和管理待辦事項,培養健康高效的習慣。它開源、免費、無需註冊,支持與 Jira、GitHub、GitLab 等第三方平臺集成,可即時收到任務變動的通知。除了可在線使用的 Web 網頁版,還提供了 Windows、Linux、macOS、iOS 和 Android 客戶端。

19、tsparticles:立刻給網站安排上動畫背景的庫。該項目可用於創建高度可定製的 JavaScript 粒子效果,比如雪花、綵帶和煙花效果等。雖然它是一個獨立庫、不依賴其他庫或框架,但項目內提供了 React、Vue、Angular、Svelte、jQuery 等框架的現成組件,以便於快速集成到項目中。

Kotlin 項目

20、MaterialFiles:一款開源的 Android 文件管理器。該項目是一個安卓文件管理器,採用 Kotlin 開發,並遵循 Material Design 設計規範。它輕量、簡潔並且安全,支持 root 權限查看和管理文件、壓縮/解壓文件、遠程查看服務器上的文件等功能,適用於 Android 5.0+ 系統。

Python 項目

21、cachetools:實用的 Python 緩存裝飾器。這是一個 Python 的緩存庫,它提供了多種緩存算法的數據類型和 Python 標準庫的 @lru_cache 函數裝飾器的變種,該庫適用於避免重複計算、加速結果返回以及減少重複請求等場景。

from cachetools import cached, LRUCache, TTLCache

# speed up calculating Fibonacci numbers with dynamic programming
@cached(cache={})
def fib(n):
    return n if n < 2 else fib(n - 1) + fib(n - 2)

# cache least recently used Python Enhancement Proposals
@cached(cache=LRUCache(maxsize=32))
def get_pep(num):
    url = 'http://www.python.org/dev/peps/pep-%04d/' % num
    with urllib.request.urlopen(url) as s:
        return s.read()

# cache weather data for no longer than ten minutes
@cached(cache=TTLCache(maxsize=1024, ttl=600))
def get_weather(place):
    return owm.weather_at_place(place).get_weather()

22、Ciphey:自動解密/解碼和破解各種加密算法的工具。使用該項目時,你只需輸入加密的文本,無需提供具體的加密類型,它就可以在 3 秒或更短的時間內自動解密大多數的加密文本。這個項目支持 30 多種常見的加密方式,包括二進制、base64、哈希等。

23、music-tag-web:編輯歌曲文件元數據的 Web 應用。這款音樂標籤編輯器提供了編輯歌曲標題、專輯、藝術家、歌詞、封面等信息的功能。它支持多種音頻格式,包括 FLAC、APE、WAV、AIFF、MP3 和 MP4 等。此外,它還提供了自動批量修改和整理音樂文件、歌詞翻譯、手機端訪問等實用功能。來自 @xier 的分享

24、sqlite-web:基於 Web 的 SQLite 數據庫管理工具。這是一個用 Flask 和 peewee 編寫的 SQLite 數據庫 Web 管理平臺。它安裝簡單、啓動也非常方便。該項目提供了一個簡單易用的界面,以及實用的 SQLite 數據管理功能,包括創建/刪除表、索引、數據導入/導出、排序、SQL 查詢等功能。

25、toolong:好用的終端日誌文件處理工具。這是一個用於查看、追蹤、合併和搜索,日誌/JSON 長文件的命令行工具。它提供了高亮顯示和實時追蹤日誌的功能,支持快速打開 GB 級的文件,並能根據時間戳自動合併日誌文件。

Ruby 項目

26、judge0:開源的在線代碼執行系統。該項目是用 Ruby 開發的在線代碼執行系統,它安裝簡單、功能強大,支持 60 多種編程語言,可以設置代碼執行時間和內存限制,並提供詳細的執行結果,包括編譯錯誤、運行錯誤和輸出結果等信息。可用於構建競賽編程、在線代碼編輯和麪試等平臺。

Rust 項目

27、czkawka:多功能文件清理工具。該項目是用 Rust 編寫的,用於查找和清理重複文件、空文件夾以及相似圖片等文件。它免費、開源且無廣告,具有快速、跨平臺和多語言等特點。使用這個工具,可以輕鬆地清理電腦上的無用文件,釋放電腦的存儲空間。

28、meilisearch:一款輕量級的 Rust 搜索引擎。該項目是採用 Rust 編寫的輕量且快速的搜索引擎。它具有開箱即用、易於維護和搜索速度快等特點,提供了實時搜索、容錯糾正、排序、同義詞等功能,支持包括中文在內等的多種語言。

client = meilisearch.Client('http://localhost:7700', 'masterKey')

client.index('movies').add_documents([
  { 'id': 1, 'title': 'Carol' },
  { 'id': 2, 'title': 'Wonder Woman' },
  { 'id': 3, 'title': 'Life of Pi' },
  { 'id': 4, 'title': 'Mad Max: Fury Road' },
  { 'id': 5, 'title': 'Moana' },
  { 'id': 6, 'title': 'Philadelphia'}
])

29、MessAuto:Mac 上的自動提取短信和郵箱驗證碼工具。這款軟件是採用 Rust 開發的,專爲 macOS 平臺設計的自動提取短信和郵箱驗證碼到剪貼板的工具。它具有免費、小巧、適用於任何應用的特點,其工作原理是監聽郵件(Mail)和短信(iMessage)應用程序的消息,自動提取消息中的驗證碼,並將其存儲到剪貼板中,運行後只有一個安靜的任務欄托盤圖標。

Swift 項目

30、Minesweeper-Desktop:macOS 桌面版掃雷遊戲。該項目是一個用 Swift 開發的 macOS 掃雷遊戲,它提供了原汁原味的掃雷體驗,保留了經典的外觀、自定義玩法和操控方式。來自 @孤膽槍手 的分享

31、Rectangle:macOS 上的窗口管理工具。該項目是 Swift 編寫的窗口管理工具,基於 Spectacle 實現。它可通過鍵盤快捷鍵在 macOS 上快速移動窗口和調整窗口大小,適用於 macOS 10.15+、Intel 和 Apple 芯片。

其它

32、CorsixTH:主題醫院遊戲開源復刻版。該項目是採用 Lua 和 C++ 重新制作的經典模擬經營遊戲《主題醫院》,它在保留了原遊戲經典玩法的基礎上,增加了對現代操作系統(Windows、Linux 和 macOS)、中文語言以及高分辨率的支持。需要注意的是安裝遊戲後,無法立即運行,因爲遊戲的數據需要單獨下載。

33、foc-wheel-legged-robot:一個新型結構的雙輪腿機器人。該項目包含了製作這款機器人所需的全部資料,包括機械結構設計、電子硬件、算法仿真和源碼等,製作的物料成本在 700 元左右。

34、h5player:網頁播放器增強插件。這是一款瀏覽器插件,支持網頁視頻倍速/加速播放、截圖、畫中畫、直播同步和下載等功能,適用於國外各大主流視頻網站。

35、system-design-101:圖文並茂的系統設計入門教程。該項目通過通俗易懂的文字和簡潔明瞭的示意圖,講解系統設計的基礎知識以及深層的工作原理的入門級教程。無論你是初學者還是準備面試的程序員,在這裏都能有所收穫。

36、wsl2-distro-manager:WSL 發行版圖形管理工具。該項目是一個基於 Flutter 開發的 WSL 管理小工具,它提供了一個友好的圖形化界面,讓用戶可以輕鬆配置、複製或轉換 WSL 實例,免去了繁瑣的命令操作。特別適合新手使用,不用再擔心把 WSL 折騰壞了。來自 @mtig 的分享

開源書籍

37、Hypervisor-From-Scratch:《從零創建虛擬機管理程序》。該項目提供了一個從頭開始構建虛擬機監控程序的教程,內容涵蓋基本概念、硬件虛擬化的技術細節以及源碼等方面。幫助開發者瞭解虛擬機的工作原理,並一步步構建自己的虛擬機監控程序。

機器學習

38、llm-viz:3D 可視化 GPT 大語言模型。該項目通過 3D 可視化的方式,演示了類似 GPT 的大語言模型的工作原理和推理過程。

39、nn-zero-to-hero:從零到神經網絡高手。這是一門從基礎開始的神經網絡課程,包含視頻、練習和配套源碼,幫助初學者初逐步掌握神經網絡的基本概念,並通過實例代碼來加深理解。

40、pandas-ai:數據分析對話化的開源庫。該項目將 AIGC 和數據分析相結合,讓用戶可以通過自然語言向自己的數據進行提問,並獲得相應的回答。首先,需要將數據以 pandas 的方式進行導入,然後配置好 OpenAI TOKEN 就可以開始通過對話和繪製圖表等方式與數據進行交互,而無需編寫代碼。

import pandas as pd
from pandasai import SmartDataframe

# Sample DataFrame
df = pd.DataFrame({
    "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
    "gdp": [19294482071552, 2891615567872, 2411255037952, 3435817336832, 1745433788416, 1181205135360, 1607402389504, 1490967855104, 4380756541440, 14631844184064],
    "happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12]
})

# Instantiate a LLM
from pandasai.llm import OpenAI
llm = OpenAI(api_token="YOUR_API_TOKEN")

df = SmartDataframe(df, config={"llm": llm})
df.chat('Which are the 5 happiest countries?')

41、PhotoMaker:AI 生成各種風格人類照片的工具。該項目可以通過上傳的人物照片,生成任意風格的人物圖像,如寫實、卡通、藝術等風格,可用於生成別具一格的頭像。

最後

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章