《HelloGitHub》第 93 期

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

簡介

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

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

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


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

C 項目

1、rsync:Linux 遠程同步文件的工具。該項目提供了一種快速、增量的文件傳輸方式,即僅傳輸有變動的部分,可用於遠程同步和備份文件。

C# 項目

2、Kavita:一款功能豐富的在線閱讀平臺。該項目可以在本地架設一個閱讀漫畫和電子書的 Web 平臺,在手機、平板、臺式機等設備上都有着出色的訪問體驗。

3、LittleBigMouse:Windows 多顯示器鼠標平滑移動的工具。在 Windows 多顯示器、分辨率不一致的情況下,鼠標在屏幕間移動會出現跳躍,比如外接了一臺 4k 屏幕的和一臺 2k 的屏幕,從 4k 屏幕中間挪到 2k 屏幕,鼠標就出現在底部了。該項目可以完美解決這個鼠標跳躍的問題,實現 Windows 多顯示器鼠標平滑移動。來自 @Wu Zheng 的分享

C++ 項目

4、Modern-CPP-Programming:現代 C++ 編程課程。該教程面向有一定編程基礎的人,內容涵蓋 C++ 編程的基礎知識、高級 C++ 語義和概念。

5、WechatExporter:微信聊天記錄遷移和備份工具。這是一個用於導出微信聊天記錄的工具,支持以 HTML、PDF 或文本格式保存聊天內容,適用於 Windows 和 macOS 系統。

Go 項目

6、mailpit:帶 API 的電子郵件測試工具。這是一個小型、快速、多平臺的電子郵件測試工具,它可以充當一個 SMTP 服務器,自帶 Web 界面,支持模擬電子郵件接收、切換不同設備查看郵件等功能,還提供了可用於自動集成測試的接口。

7、muffet:Go 寫的網站鏈接檢查工具。該項目通過多線程和遞歸的方式,檢查目標網站中所有頁面的鏈接。它使用簡單、速度快,支持 a、img、link、script 等多種標籤。

8、one-api:OpenAI 接口管理和分發系統。該項目集成了各種大模型,並統一轉化成了類似 OpenAI 接口的服務。它開箱即用、單文件,支持負載均衡、令牌管理、兌換碼、用戶分組、查看額度、邀請獎勵等功能,可用於自建 ChatGPT 服務。

9、zen:一款適用於 PC 的廣告攔截器。該項目是採用 Go 語言 Wails 框架寫的能夠屏蔽各種廣告的桌面工具。它的工作原理是設置一個代理,攔截所有應用的 HTTP 請求,從而阻止廣告和跟蹤行爲的請求,支持 Windows、macOS 和 Linux 操作系統。

Java 項目

10、sensitive-word:用於過濾敏感詞的 Java 庫。該項目是基於 DFA 算法實現的高性能敏感詞過濾工具,詞庫收錄了 6w+ 內容,支持自定義敏感詞、白名單、替換策略、數字常見形式的互換、忽略重複詞等功能。

11、SMS4J:Java 的短信服務聚合框架。該項目集成了國內衆多第三方短信服務,簡化了接入多個短信 SDK 的流程,僅通過修改配置文件,就能輕鬆實現發送短信的功能。來自 @ヽ米 飯 的分享

@RestController
@RequestMapping("/test/")
public class DemoController {

    // 測試發送固定模板短信
    @RequestMapping("/")
    public void doLogin(String username, String password) {
         //阿里雲向此手機號發送短信
        SmsFactory.createSmsBlend(SupplierType.ALIBABA).sendMessage("18888888888","123456");
        //華爲短信向此手機號發送短信
        SmsFactory.createSmsBlend(SupplierType.HUAWEI).sendMessage("16666666666","000000");
    }
}

JavaScript 項目

12、daedalOS:跑在瀏覽器裏的桌面環境。該項目是用 JavaScript 寫的運行在瀏覽器中的仿 Windows 桌面操作系統,支持開始菜單、動態壁紙、命令行終端、視頻播放器、3D 彈球、Markdown 查看器、瀏覽器等功能。

13、miniPaint:免費的在線圖片編輯器。該項目無需安裝、可直接在瀏覽器中運行,支持創建/編輯圖像、圖層、濾鏡、馬賽克、繪圖工具等功能。

14、multipleWindow3dScene:炫酷的前端量子糾纏效果。量子糾纏是一種量子力學現象,即兩個或多個量子不論相距多遠都存在一種關聯。該項目通過使用 Three.js 和 localStorage 跨多個瀏覽器窗口,展示了這一量子力學現象。來自 @YJLTF 的分享

15、omnivore:一款免費、多端的稍後閱讀工具。該項目採用 TypeScript + Next.js 構建而成,支持保存文章、電子郵件、文檔和同步 Obsidian 等個人知識管理系統的內容,以便日後閱讀。而且還提供了 iOS、Android 客戶端和瀏覽器插件,方便隨時隨地閱讀。

16、vue-naive-admin:一款極簡風格的 Vue 管理後臺。這是一個開源、免費、可商用的後臺管理模板,基於 Vue3、Vite4、Pinia、Unocss 和 Naive UI 等前端最新技術棧。它簡潔、輕量、風格清新,上手成本低,適合中小型項目或者個人項目。來自 @Ronnie Zhang 的分享

Kotlin 項目

17、Calendar:適用於 Android 的高度可定製的日曆庫。這是一個用於開發 Android 日曆應用的庫,內含示例應用。提供了周或月模式顯示、邊界日期、水平或垂直滾動等功能,可以隨心所欲地設計日曆。

PHP 項目

18、BookStack:一個簡單、開箱即用的 wiki 平臺。該項目是基於 PHP 和 Laravel 的 wiki 平臺,擁有搜索、Markdown 編輯器、繪圖、多語言、身份驗證等功能。

Python 項目

19、django-tailwind:Django 集成 Tailwind CSS 的庫。該項目可以讓你在 Django 項目中輕鬆地使用 Tailwind CSS 框架,內含 Tailwind CSS 官方的排版、表單、line-clamp 等插件。

20、frigate:一款圍繞實時 AI 對象檢測構建的開源 NVR。該項目基於 OpenCV 和 Tensorflow 實現在本地爲 IP Camera 提供實時目標檢測和安全報警等功能,還支持根據設定的規則,保留檢測到物體的視頻。

21、sqlglot:一個非常全面的 SQL 解析器。該項目是用 Python 寫的 SQL 解析器、轉譯器和優化器,它可以格式化 SQL 以及支持在 20 種不同方言和 SQL 之間進行轉化,可用來自定義解析器、分析查詢,用編程方式構建 SQL。

import sqlglot

# SQL 轉 Spark
sql = """WITH baz AS (SELECT a, c FROM foo WHERE a = 1) SELECT f.a, b.b, baz.c, CAST("b"."a" AS REAL) d FROM foo f JOIN bar b ON f.a = b.a LEFT JOIN baz ON f.a = baz.a"""
print(transpile(sql, write="spark", identify=True, pretty=True)[0])

22、tablib:輕鬆處理表格數據集的 Python 庫。該項目能夠將不同格式的表格數據集,轉化成統一的 Dataset 對象。它提供了動態列、標籤、過濾等功能,支持 csv、df、json、yaml、xls 等格式的數據。

import tablib

data = tablib.Dataset(headers=['First Name', 'Last Name', 'Age'])

for i in [('Kenneth', 'Reitz', 22), ('Bessie', 'Monke', 21)]:
    data.append(i)

# 將數據輸出成 json 格式
print(data.export('json'))
# [{"Last Name": "Reitz", "First Name": "Kenneth", "Age": 22}, {"Last Name": "Monke", "First Name": "Bessie", "Age": 21}]

# df 對象
data.export('df')
#   First Name Last Name  Age
# 0    Kenneth     Reitz   22
# 1     Bessie     Monke   21

23、talebook:一款簡單好用的在線個人書庫。該項目是基於 Calibre 的個人圖書管理系統,後端是 Python 的 Tornado Web 框架,前端採用 Vue.js 構建。它不僅擁有美觀的界面而且安裝簡單,支持在線閱讀、導入書籍、推送到 Kindle、私人模式等功能。

Rust 項目

24、sshx:基於 Web 的安全終端協作工具。該項目只需一條命令,即可與多人共享終端。支持實時多人協作、多窗口、遠程光標、在線聊天、自動重連等功能,可用於教學和遠程調試。來自 @獵隼丶止戈reNo7 的分享

25、tailspin:一款實用的日誌高亮命令行工具。該項目是 Rust 寫的命令行查看日誌的工具,它無需配置開箱即用,通過高亮的形式,突出顯示數字、日期、IP、URL 等內容,讓重要的信息一目瞭然。

26、Weylus:將平板用作計算機上的輸入板/觸摸屏。通過該項目可以將平板設備,作爲電腦的外接屏幕、觸控板、鍵盤,適用於 Windows、Linux 和 macOS 系統。

Swift 項目

27、visionOS_30Days:挑戰 30 天上手蘋果 visionOS 開發。visionOS 是運行在蘋果的混合實境頭戴式設備 Apple Vision Pro 上的操作系統,該項目提供了 30 個 visionOS 開發的示例代碼。

其它

28、dbgate:(no)SQL 數據庫桌面管理工具。該項目支持包括 MySQL、PostgreSQL、SQL Server、MongoDB、SQLite、Redis 等多種數據庫,適用於 Windows、Linux、macOS 系統。

29、Detect-It-Easy:用於查看文件類型的工具。該項目可以快速檢測二進制文件的文件類型、體系結構和編譯器信息,支持識別多種文件格式,有助於進行逆向工程和安全分析,適用於 Windows、Linux、macOS 系統。

30、github-chinese:GitHub 網站漢化插件。該項目可以將 GitHub 網站的菜單欄、標題、按鈕等公共組件,自動翻譯成中文,適合剛接觸 GitHub 的小白使用。來自 @wuyuncheng-26 的分享

31、HumanSystemOptimization:人體系統調優不完全指南。這是一份幫助改善人體健康狀態的指南,篇幅較長。儘量做到保持睡眠時長與質量、不要吸菸、每天做點運動、減少糖分的攝入,就能擁有不錯的健康狀態。

32、wondershaper:Linux 限制網絡帶寬的工具。該項目通過使用 iproute 的 tc 命令,實現了對 Linux 網絡帶寬限速的功能,支持多網卡、限制最大上傳/下載速率。

開源書籍

33、Node.js-Troubleshooting-Guide:Node.js 應用故障排查手冊。該手冊主要是幫助 Node.js 開發者,應對開發和線上部署中遇到的問題,比如定位故障、壓測和性能調優等。

34、pml-book:《概率機器學習》。該項目包含凱文·墨菲的三本書籍,分別爲《機器學習:概率視角》、《概率機器學習:簡介》、《概率機器學習:高級》,內容涵蓋了基礎理論和前沿研究,圖文並茂並配有示例和練習。來自 @Xuefeng Xu 的分享

機器學習

35、backgroundremover:一條命令自動移除圖像背景。該項目通過 AI 技術,可自動移除圖片和視頻中的背景。

36、machine-learning-roadmap:機器學習路線圖。這份機器學習思維導圖,包含了機器學習相關的問題、學習步驟、工具、底層數學知識、教程資源等,爲如何學習機器學習指出方向。

37、PokemonRedExperiments:通過強化學習訓練 AI 玩 Pokemon。該項目使用 Python + RL 從零訓練了一個玩「寶可夢紅」的 AI,同時作者還提供了配套的講解視頻,以及如何在本地運行和自定義訓練的教程,快來上手試試吧!來自 @老荀 的分享

38、supervision:計算機視覺 AI 工具庫。該項目簡化了對象檢測、分類、標註、跟蹤等計算機視覺的開發流程。開發者僅需加載數據集和模型,就能輕鬆實現對圖像和視頻進行檢測、統計某區域的被檢測數量等操作。

import cv2
import supervision as sv
from ultralytics import YOLO

image = cv2.imread(...)
model = YOLO('yolov8s.pt')
result = model(image)[0]
detections = sv.Detections.from_ultralytics(result)

print(len(detections))
# 5

最後

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

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

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

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