《HelloGitHub》第 90 期

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

簡介

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

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

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


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

C 項目

1、BlackHole:適用於 macOS 的虛擬音頻驅動。在 macOS 上錄製過視頻的同學,應該都遇到過收錄電腦聲音的問題,採用公放的方式對環境要求極高。該項目是一款 macOS 上的虛擬音頻驅動,它可以零延遲地將輸出的音頻傳遞給其他應用,從而不受周圍環境的影響,輕鬆錄製電腦的聲音,支持 Intel 和 Apple 芯片。

2、c4:用 4 個函數實現的 C 語言編譯器。該項目僅用了 500+ 行代碼、4 個函數,就實現了一個小型 C 語言編譯器。但因爲它的代碼過於精簡,所以源碼閱讀起來並不輕鬆。

C# 項目

3、optimizer:超好用的 Windows 優化器。這是一款強大的 Windows 系統優化工具,它體積小、功能豐富,支持包括中文在內的 22 種語言,能夠禁用不必要的 Windows 服務、刪除多餘的啓動程序、關閉用不到的功能,提升 Windows 系統的使用體驗和性能。

4、Translumo:免費開源的屏幕實時翻譯工具。該項目可以對屏幕上選定區域內顯示的文本進行實時翻譯,可識別英語、俄語、中文等語言。用戶可自行選擇 Tesseract、WindowsOCR、EasyOCR 多種 OCR 引擎,以及包括谷歌翻譯在內的多種翻譯源。

C++ 項目

5、duckdb:一款類似 SQLite 的分析型數據庫。該項目是用 C++ 寫的 OLAP(聯機分析處理)數據庫,沒有外部依賴項、不作爲獨立進程運行,可以看作是 OLAP 版本的 SQLite。它方便、快速、易於使用,提供了豐富的 SQL 方言,支持 JOIN、聚合、窗口函數、直接查詢 CSV 和 JSON 文件等功能。

SELECT * FROM 'HelloGitHub.csv';
SELECT * FROM 'HelloGitHub.parquet';

6、kakoune:一款神似 Vim 的代碼編輯器。擁有極簡的界面和便捷的編輯模型的代碼編輯器,雖然它的設計靈感源自 Vim,但在功能和交互性上“青出於藍而勝於藍”。操作上更加的快捷方便,默認支持語法高亮、自動補全等功能,適用於 Linux 和 macOS 操作系統。

7、SafeLine:一款簡單好用的 Web 應用防火牆。該項目底層基於 Nginx 的 Web 網關,作爲反向代理接入網絡。採用智能語意分析算法,清洗來自黑客的惡意流量,保護你的網站不受黑客攻擊。它安裝簡單、免費版功能夠用,但項目僅開源了核心算法和底層引擎。來自 @孤膽槍手 的分享

8、smartknob:自己動手製作一款觸感智能旋鈕。這是一款開源的智能旋鈕設備,可自定義端點位置、虛擬製動、觸覺反饋,並帶有一個圓形 LCD,十分炫酷好玩。

9、typesense:一款快如閃電的開源搜索引擎。該項目是用 C++ 編寫的即時搜索引擎,具有開箱即用、搜索速度快、自動更正拼寫錯誤、地理搜索、默認分詞器支持中文等特點。

CSS 項目

10、pokemon-cards-css:炫酷的神奇寶貝卡牌 CSS 效果。該項目是口袋怪獸卡高級 CSS 樣式集合,使用了 3D 變換、濾鏡、漸變等技術,實現了眩光、紋理、銀河全息、垂直光束等效果。

Go 項目

11、asynq:純 Go 寫的簡單、可靠的分佈式任務隊列。這是一個基於 Redis 的輕量級異步任務隊列,它會爲每個任務啓動一個 goroutine,支持任務失敗重試、優先級隊列、定時任務、唯一任務等功能。

12、carbon:一個對開發者友好的 Go 時間處理庫。這是一個功能豐富、容易上手的 Go 時間庫,支持時間轉換、時間差、時間旅行、星座、季節、農曆、多語言等功能。

lang := carbon.NewLanguage()
lang.SetLocale("zh-CN")

c := carbon.SetLanguage(lang)
if c.Error != nil {
	// 錯誤處理
	log.Fatal(err)
}

c.Now().AddHours(1).DiffForHumans() // 1 小時後
c.Now().AddHours(1).ToMonthString() // 八月
c.Now().AddHours(1).ToShortMonthString() // 8月
c.Now().AddHours(1).ToWeekString() // 星期二
c.Now().AddHours(1).ToShortWeekString() // 週二
c.Now().AddHours(1).Constellation() // 獅子座
c.Now().AddHours(1).Season() // 夏季

13、nezha:國產的輕量級服務器監控工具。這是一款名爲“哪吒”的服務器監控面板,它安裝簡單、開箱即用,支持監控多個服務器的系統狀態、SSL 證書狀態、報警通知、流量監控、設置定時任務等功能,適用於 Linux、Windows、macOS、OpenWRT 等主流系統。來自 @兩雙筷子sqldc 的分享

14、sonyflake:Go 語言的分佈式 ID 生成庫。該項目是索尼開源的分佈式唯一 ID 生成器,靈感來自知名的 Twitter 雪花算法(Snowflake)。它比 Snowflake 慢,但擁有更長的壽命,可以在更多的機器上工作,適用於更大的分佈式集羣。

Java 項目

15、Algorithms:一個用 Java 實現的算法和數據結構的集合。算法和數據結構的重要性無需多言,該項目提供了常見的數據結構和算法最簡單、優雅的 Java 代碼實現,不管是用於學習還是開發都是不錯的選擇。來自 @孤膽槍手 的分享

16、Stirling-PDF:允許對 PDF 文件做各種操作的 Web 應用。這是一款功能強大、開箱即用的 PDF 工具,支持拆分/合併文件、添加/提取圖片、壓縮、加水印、添加/刪除密碼等功能,滿足你對 PDF 文件的所有需求。

JavaScript 項目

17、Bangumi:類似豆瓣的二次元愛好者社區客戶端。這是一個基於 React Native 構建的二次元社區 Bangumi 第三方客戶端。它免費、無廣告、因愛好而生、專爲移動端設計,支持番組進度管理、用戶動態、貼吧、搜索、排行榜、標籤等功能。

18、deprank:通過 PageRank 找到代碼庫中最重要的文件。該項目基於 PageRank 算法和源文件依賴關係,找到 JavaScript/TypeScript 代碼倉庫中被依賴最多的文件。

19、json-server:僅需 30 秒、不用寫代碼就能模擬接口數據。這是一款小巧的接口模擬工具,它使用起來十分簡單,只需創建 JSON 文件,然後一條命令就能快速啓動接口服務。

# 安裝
npm install -g json-server
# 啓動
json-server --watch db.json

20、mind-map:一個好用的 Web 思維導圖。該項目包含一個不依賴任何框架的思維導圖 JavaScript 庫,以及一個採用 Vue.js+ElementUI 開發的支持本地部署、功能豐富的在線思維導圖應用。

import MindMap from "simple-mind-map";

const mindMap = new MindMap({
  el: document.getElementById('mindMapContainer'),
  data: {
    "data": {
        "text": "根節點"
    },
    "children": []
  }
});

21、yunxiaozhi:一款開源的校園教務查詢微信小程序。該項目是由學生開發的智慧校園小程序,支持課程表查詢、成績查詢、考試安排、空教室查詢、水電查詢等功能。

Kotlin 項目

22、gkd:自定義屏幕點擊的 Android 應用。該項目是基於無障礙功能的手機自動點擊工具,支持自定義或訂閱點擊規則,可用來自動完成點擊跳過廣告、同意按鈕、領紅包等操作。

Python 項目

23、argos-translate:用 Python 寫的開源離線翻譯庫。該項目是基於 OpenNMT(神經網絡機器翻譯框架)的離線翻譯 Python 庫,它不依賴任何第三方翻譯接口,支持翻譯包括中文在內的 30 多種語言。

import argostranslate.package
import argostranslate.translate

from_code = "en"
to_code = "es"

# Download and install Argos Translate package
argostranslate.package.update_package_index()
available_packages = argostranslate.package.get_available_packages()
package_to_install = next(
    filter(
        lambda x: x.from_code == from_code and x.to_code == to_code, available_packages
    )
)
argostranslate.package.install_from_path(package_to_install.download())

# Translate
translatedText = argostranslate.translate.translate("Hello World", from_code, to_code)
print(translatedText)
# '¡Hola Mundo!'

24、mwmbl:一個用 Python 寫的開源、非營利搜索引擎。這是一款採用 pandas、FastAPI、scikit-learn、jusText 構建的非營利、無廣告、無跟蹤的小型搜索引擎,它界面簡約、速度快,搜索結果無“外界因素”干擾。

25、prettymaps:繪製好看的地圖海報的 Python 庫。該項目可以將 OpenStreetMap 的地圖數據繪製成漂亮的地圖海報,上手簡單可自定義填充顏色。

26、webdriver_manager:輕鬆管理 WebDriver 的 Python 庫。經常寫爬蟲的小夥伴應該都遇到過找 WebDriver 路徑的情況吧!用了這個項目,將無需一次又一次地重複尋找 WebDriver 在哪裏啦。

# 之前
from selenium import webdriver
driver = webdriver.Chrome('/home/user/drivers/chromedriver')

# 現在
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

27、youre-the-os:模擬計算機操作系統的遊戲。這是一個 Python 寫的 Web 遊戲,在遊戲中玩家扮演的是一臺計算機的操作系統。玩家必須通過管理進程、內存和 I/O 事件,不讓進程閒置太久,因爲進程等待太久就會退出,如果退出的進程達到一定數量後,計算機就會重啓則遊戲失敗。

Ruby 項目

28、docuseal:開源的文件在線簽署平臺。這是一款用 Ruby 寫的在線簽署文件平臺,它開箱即用、容易上手、移動端友好,支持拖拽的方式創建 PDF 表單、在線填寫和簽名、自動發送郵件、用戶管理等功能。

Rust 項目

29、lettura:極簡的開源 RSS 閱讀器。這是一款基於 Tauri 開發的桌面 RSS 閱讀器,它免費、無廣告、界面清爽,適用於 macOS 和 Windows 操作系統。

30、privaxy:Rust 寫的跟蹤和廣告攔截工具。該項目基於 MITM 中間人攻擊原理,在兩端之間建立雙向隧道,通過過濾 URL 地址阻止廣告的請求,實現攔截廣告的效果。它佔用內存少、速度快,支持自動更新過濾列表、統計信息顯示、自定義過濾列表等功能。

Swift 項目

31、TomatoBar:精緻的 macOS 菜單欄番茄時鐘。這是一款 macOS 上的番茄時鐘應用,它小巧精緻、界面簡潔,支持設置工作和休息間隔、提示音、全局熱鍵等功能。

32、XcodesApp:Xcode 安裝和切換的實用工具。Xcode 是 macOS 系統向開發人員提供的集成開發環境,該項目可以輕鬆安裝和切換各個版本的 Xcode,採用 aria2 下載速度更快,Xcode 發行版數據來自蘋果官網。

其它

33、catppuccin:超看好的主題配色方案。該項目是由社區驅動的配色方案,內含以暖色調爲主、色彩豐富的主題,可用於 VSCode、JetBrains、Vim 等編輯器和 IDE,同樣適用於各種編程語言的開發庫、終端、操作系統、瀏覽器等應用。

34、keyviz:一款免費的實時鍵鼠輸入可視化軟件。該項目可以將鼠標和鍵盤的操作展示到屏幕上,讓觀衆可以看到你的鍵鼠操作。適用於截圖、錄製視頻、演示和協作等場景,支持 Windows、Linux 和 macOS 操作系統。

35、LearnPrompt:免費開源的 AIGC 課程。該項目對新手友好、無需 AI 知識也可輕鬆學習,它不僅會傳授如何用好 AIGC,還會深入討論 AI 相關的知識,內容包括 ChatGPT、Runway、Midjourney、Stable Diffusion、AI 數字人等方面。

36、python-weekly:Python 潮流週刊。這是一份由「豌豆花下貓」製作的每週更新的 Python 週刊,內容包括 Python 的精品文章、教程、開源項目、工具、視頻和熱門話題等。

37、TechStack:顯示 GitHub 項目所用技術棧的瀏覽器插件。該項目可以展示用戶正在訪問的 GitHub 倉庫的技術棧,幫助用戶快速瞭解項目的更多信息。來自 @CorrectRoadH 的分享

38、webgl-fundamentals:從基礎理論講起的 WebGL 教程。這是一份從基礎的數學知識講起的 WebGL 系列教程,內含中文翻譯版本。

開源書籍

39、css-animation-101:《CSS 動畫入門祕籍》。這本書主要是介紹 CSS 中的動畫(CSS animation),內容包含什麼是 CSS animation、transition 屬性、如何製作複雜的動效以及豐富的示例,教會你如何將 CSS 動畫應用到你的項目中。

40、how-to-write-makefile:《跟我一起寫 Makefile》。該項目是陳皓整理自《GUN Make Manual 》的系列文章 PDF 重製版,作者對其進行了排版優化、代碼高亮等操作,閱讀起來更加舒服,可作爲初學者上手 Makefile 的教程。

機器學習

41、hcaptcha-challenger:優雅地處理 hCaptcha 驗證碼的庫。該項目不依賴瀏覽器插件和第三方反驗證碼服務,通過機器學習的方式處理 hCaptcha 驗證碼。它採用 ResNet 和 YOLOv8 處理分類和檢測問題,通過 ONNX 打包模型降低使用門檻,讓用戶可在沒有 GPU 的設備上運行代碼,且無需安裝 PyTorch 等依賴,優雅地面對 hCaptcha 驗證碼。來自 @QIN2DIM 的分享

import os
from pathlib import Path

import hcaptcha_challenger as solver

# Init local-side of the ModelHub
solver.install()

# Challenge prompt of binary challenge 
prompt = "diamond bracelet"

# Load challenge images, assuming you've already downloaded them.
label_dir = Path(__file__).parent.joinpath("diamond_bracelet")
images = [label_dir.joinpath(fn).read_bytes() for fn in os.listdir(label_dir)]

def bytedance():
    classifier = solver.BinaryClassifier()
    # type: List[bool | None]
    # IF True --> click image
    # ELIF False --> bypass image
    # ELSE --> Something err  
    if result := classifier.execute(prompt, images):
        for i, name in enumerate(os.listdir(label_dir)):
            print(f"{name} - {result[i]}")

if __name__ == "__main__":
    bytedance()

42、jax:谷歌開源的高性能科學計算庫。這是一個結合了即時編譯(JIT)、自動求導(Autograd)、線性代數編譯器(XLA) 的數值計算 Python 庫,用法和 NumPy 差不多。但 JAX 更快、更省內存,支持自動微分、自動向量化、並行計算等功能。

from jax import grad
import jax.numpy as jnp

def tanh(x):  # Define a function
  y = jnp.exp(-2.0 * x)
  return (1.0 - y) / (1.0 + y)

grad_tanh = grad(tanh)  # Obtain its gradient function
print(grad_tanh(1.0))   # Evaluate it at x = 1.0
# prints 0.4199743
# 自動求導
print(grad(grad(grad(tanh)))(1.0))
# prints 0.62162673

43、sd-webui-EasyPhoto:你的智能 AI 照片生成工具。這是一款用於生成 AI 肖像畫的 WebUI 插件,可用於生成專業質感的照片,相當於免費、可本地部署的妙鴨相機。

最後

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

以上就是本期的所有內容了,往期內容點擊閱讀,如果你覺得本期內容還不錯的話 求贊、求分享 ❤️

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