《HelloGitHub》第 85 期

削微寒發表於2023-04-28

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

簡介

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

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

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


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

C 專案

1、dperf:一款能模擬巨大流量的壓測工具。該專案是基於 DPDK 開發的高效能壓測工具,能夠每秒建立千萬級的 HTTP 連線、億級別的併發請求和數百 Gbps 的吞吐量。

2、ExplorerPatcher:自由切換 Windows11 開始選單樣式的工具。這是一款能夠讓 Windows 11 的開始選單欄(Explorer) 重回 Windows 10 樣式的擴充套件工具,除此之外還支援禁用 Windows 11 的上下文選單和命令欄等功能,讓你在 Windows 上擁有更舒適的工作環境。

3、ImageMagick:一款強大的編輯和處理影像的桌面工具。該專案可用於建立、調整大小、裁剪、顏色校正和合成影像,支援超過 200 種的影像檔案格式,其強大之處在於提供了處理複雜影像處理任務的 CLI 和 API。ImageMagick 被廣泛應用於平面設計、科學研究、醫學影像、天文等領域,適用於 Windows、Linux 和 macOS 系統。來自 @孤膽槍手 的分享

C# 專案

4、ScottPlot:一個免費、開源的 .NET 繪相簿。該專案可以輕鬆地以互動方式顯示大型資料集,只需幾行程式碼即可實現折線圖、條形圖、餅圖、散點圖等。來自 @星之痕跡 的分享

5、SpleeterGui:一款 Windows 上的音軌分離工具。它是第三方製作的 Spleeter 桌面應用,支援中文在內的多國語言,可以將音樂裡的人聲和樂器聲分離,輕鬆實現提取音樂中的伴奏。來自 @孤膽槍手 的分享

6、VPet:一款虛擬桌寵模擬器。這是一款 Windows 桌面寵物軟體,支援摸頭、餵食、喝水、打工、睡覺、玩耍等多種互動方式。

C++ 專案

7、AirSim:基於虛幻引擎構建的無人機、汽車模擬器。這是一款微軟開源的無人機和汽車的模擬模擬器,支援使用流行的飛行控制器進行軟體在環(SIL)模擬,並使用 PX4 進行硬體在環(HIL)模擬,實現物理和視覺上逼真的模擬,可用於試驗自動駕駛汽車、計算機視覺和強化學習演算法。來自 @松果 的分享

8、krita:自由開源的免費繪畫軟體。它強大且完全免費,無需註冊、沒有廣告、試用期和商用限制,讓每一位畫師都可以有尊嚴地進行創作。可用於繪製概念草圖、插畫、漫畫、動畫、接景和 3D 貼圖,支援數位板、壓感、防抖、圖層、濾鏡、色彩管理等功能,適用於 Windows、Linux、macOS 作業系統。

9、notekit:一款支援手繪筆記的 Markdown 編輯器。這是一個基於 GTK+ 3 開發的筆記工具,支援所見即所得的 Markdown 內容,以及透過滑鼠、觸控式螢幕或數字轉化器新增手繪筆記。

10、pcsx2:免費、強大的 PlayStation 2 遊戲模擬器。它能夠執行包括最終幻想 X 和 鬼泣 3 在內的熱門遊戲,支援中文在內的多國語言,適用於 Windows、Linux 和 macOS 系統。

Go 專案

11、dozzle:輕巧的 Docker 實時日誌檢視工具。這是一個實時監控 Docker 日誌的 Web 應用,打包成了一個非常小的 Docker 應用。它開箱即用、佔用記憶體少、不儲存任何日誌檔案,支援更加友好的日誌展示、容器名稱模糊搜尋、正規表示式搜尋日誌等功能。

12、go-captcha:Go 寫的行為驗證碼庫。這是一個 Go 語言、簡單易用、互動友好的行為驗證碼庫,支援隨機驗證文字和點選式驗證碼。採用展示驗證碼、採集使用者行為、驗證行為資料的流程,整個過程使用者只需點選操作就能完成驗證。

13、kwok:模擬 K8s 叢集的工具。它可以在幾秒鐘內搭建一個由數千個節點組成的 Kubernetes 叢集,整個過程僅佔用非常少的資源,輕鬆實現在本機上學習、測試和開發 K8s 叢集應用。來自 @松果 的分享

14、scrutiny:一款監控硬碟執行狀況的儀表板。這是 smartd 的 WebUI 平臺,smartd 是一個守護程式,它能夠監視擁有 S.M.A.R.T.(自我監測、分析及報告技術) 規範的硬碟。該專案基於 smartd 實現了硬碟各項指標的視覺化介面,並增加了告警、自定義閾值等功能。

15、sqlflow:連線 SQL 和 AI 框架的工具。該專案能夠將類似 SQL 的程式碼,編譯成可執行在 K8s 叢集的工作流,實現只寫 SQL 就能得到 AI 引擎訓練/預測的結果。支援 MySQL、MariaDB、TiDB、Hive 等資料庫,以及 TensorFlow、Keras 等框架。來自 @松果 的分享

SELECT * FROM iris.train
TO TRAIN DNNClassifier
WITH model.hidden_units = [10, 10], model.n_classes = 3, train.epoch= 10
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;

Java 專案

16、circuitjs1:瀏覽器上的電子電路模擬器。這是一個在瀏覽器中執行的電子電路模擬器,滑鼠點選即可開啟或關閉開關,當滑鼠移動到任何元件上,會顯示該元件的當前狀態和簡短描述。支援繪製電路、新增電路元件、修改數值、動態顯示電壓訊號、匯入/匯出/儲存等功能,可用於電子電路相關的教學和實驗。

17、MoonBox:無侵入的線上流量錄製/回放平臺。這是一款由 vivo 開源的基於 jvm-sandbox-repeater 的流量回放平臺,提供了資料統計和儲存能力以及大量外掛,適用於自動化測試、線上問題追蹤和業務監控等場景。

18、oshi:獲取作業系統和硬體資訊的 Java 庫。這是一個基於 JNA 實現的獲取本機作業系統和硬體資訊的庫,支援作業系統版本、程式、記憶體、 CPU 使用率、磁碟和分割槽、裝置、感測器等資訊。

JavaScript 專案

19、mathquill:數學公式線上編輯器。這是一個 JavaScript 寫的公式編輯器,它可以讓數學公式輸入變得簡單和美觀。來自 @松果 的分享

20、nextui:漂亮、快速、新式的 React UI 庫。UI 的整體風格簡潔大方,圓角設計使用者體驗友好。它不僅顏值能打,而且對開發者也十分友好,支援自定義預設主題、自定義元件樣式、fully-typed、自動識別深色模式等功能。來自 @鴻宇Hov 的分享

21、quill:一款強大的富文字編輯器。它是目前 GitHub 上 Star 數最多的所見即所得 Web 編輯器,具有強大的可擴充套件性和相容性,支援桌上型電腦、平板電腦和手機上幾乎所有的瀏覽器。

22、react-hot-toast:輕便的 React toast 提示元件。它使用方便、易於定製、小於 5kb,支援 Emoji 圖示、懸浮保持等功能,提供了多種不同樣式的示例程式碼,拿來就能直接用。來自 @鴻宇Hov 的分享

23、workadventure:畫素 RPG 風格的線上虛擬辦公室。一個以 16-bit RPG 遊戲形式呈現的線上協作工作區。使用者可以在虛擬辦公室內四處走動,並與同事進行文字交流、影片聊天或線上會議。

Kotlin 專案

24、Music-Player-GO:一款小巧但功能齊全的本地 Android 音樂播放器。它擁有極簡的介面和小巧的體積,支援中文、定時關閉、隨機播放、按藝術家、專輯、歌曲或資料夾組織音樂等功能。

Objective-C 專案

25、Easydict:一款簡潔優雅的翻譯詞典。它開箱即用,能夠自動識別輸入文字的語言,支援輸入翻譯、劃詞翻譯和 OCR 截圖翻譯等功能。

Python 專案

26、datasette:一個用於探索和釋出資料的 Python 工具。該專案可以將 CSV、JSON、資料庫等各種形式的資料,在幾分鐘內釋出成 API 介面或網頁,輕鬆實現資料集的 Web 視覺化、搜尋、分析等功能。

27、erpnext:一款完全開源的 ERP 系統。它是採用 Python+JavaScript 開發的企業資源規劃(ERP)系統,可用於構建中/小型企業的客戶關係、人力資源、銷售/採購/倉庫、財務等管理系統。

28、mercury:能夠將 Jupyter Notebook 變成 Web 應用的框架。該專案可以讓你在 Python Notebook 中新增互動式部件,實現自動生成一個漂亮的 Web 應用,方便分享和展示你的成果。

29、pyotp:Python 的一次性密碼庫。它是一個能夠生成/驗證一次性密碼(簡訊驗證碼)的 Python 庫,可以在 Web 應用或其它需要登入的系統上,實現雙因素(2FA) 或多因素(MFA) 身份驗證方法。

30、sqladmin:FastAPI/Starlette 的後臺管理介面。這是一個靈活的 SQLAlchemy 管理後臺,採用 Tabler 構建 Web 介面,支援整合到 FastAPI 和 Starlette,實現類似 Django 內建的管理後臺功能。

from fastapi import FastAPI
from sqladmin import Admin, ModelView

app = FastAPI()
admin = Admin(app, engine)

class UserAdmin(ModelView, model=User):
    column_list = [User.id, User.name]

admin.add_view(UserAdmin)

Rust 專案

31、kibi:不到 1024 行的文字編輯器。這是一個用不到 1024 行 Rust 程式碼編寫的命令列文字編輯器,支援 UTF-8、語法高亮、行號等基礎功能。

32、veloren:一款 Rust 寫的畫素風 RPG 遊戲。它的靈感來自《塞爾達傳說:曠野之息》、《矮人要塞》和《我的世界》等遊戲。雖然這款遊戲的畫質低,但擁有廣闊的開放世界,玩家在遊戲裡可以打造道具、合成物品、戰鬥、升級、馴養寵物,還可以探索地牢洞穴、在空中滑翔、與 NPC 交易。

Swift 專案

33、hidden:幫助隱藏 macOS 選單欄圖示的小工具。它能夠靈活地隱藏選單欄應用,讓你的 Mac 看起來更加簡潔,可透過 App Store 一鍵安裝。

其它

34、distrochooser:幫你找到適合自己的 Linux 發行版。該網站透過詢問一些問題,為你推薦符合你要求的 Linux 發行版,支援中文。來自 @酸去羥基醇去氫 的分享

35、dockerlabs:適合所有階段開發者的 Docker 教程。該教程的內容分為初、中、高三個級別,適合所有階段的 Docker。內含 500 個動手實驗,以及 Docker 和 Docker Compose 小抄,這一切全部開源且分文不取。

36、flutter_twitter_clone:Flutter 寫的推特客戶端。這是一款用 Flutter 寫的第三方 Twitter 客戶端,實現了登入/註冊、資訊流、回覆、通知、個人主頁等功能。

37、galagino:自制迷你的 80 年代街機。基於 ESP32 開發板的街機模擬器,可以執行吃豆人(Pac-Man)、小蜜蜂(Galaga) 和大金剛(Donkey Kong) 三款經典的街機遊戲。

38、my-re0-k8s-security:從零開始的 Kubernetes 攻防。該專案包含了作者在多處攻防場景,所遇到的雲原生相關的漏洞挖掘和漏洞利用例項。

39、static-marks:將瀏覽器書籤轉換為靜態網站的工具。該專案能夠將本地的瀏覽器書籤,生成一個方便部署的獨立 HTML 檔案,輕鬆實現線上分享瀏覽器書籤的功能。來自 @摸魚的小灰慄。 的分享

開源書籍

40、build-lua-in-rust:《用 Rust 寫個 Lua 直譯器》。這本書介紹瞭如何用 Rust 語言從零實現一個 Lua 直譯器。

41、learn-javascript:一本教授 JavaScript 語言的電子書。這是一本從零開始教授 JavaScript 程式語言基礎的書,內含豐富的線上練習。

42、vimllearn:《VimL 語言程式設計指北路》。一本關於 VimL(Vim Language) 指令碼語言的書,VimL 是 Vim 內建的指令碼語言。

機器學習

43、AnimatedDrawings:讓畫作動起來的 AI 專案。這是 Meta AI 研究院開源的動畫庫,它能讓你的畫作動起來。無論是小朋友畫的小人,還是高水平的卡通人物,該專案都能讓它們跟著你一起做動作。

44、bark:Text-Prompted 生成音訊的模型。該專案可以根據你輸入的文字提示生成音訊,甚至可以指定背景聲音,比如我愛 HG (大笑),生成的語音會包含爽朗的笑聲。它還可以模擬音樂、聲效,比傳統的文字轉語音更智慧。

from bark import SAMPLE_RATE, generate_audio, preload_models
from IPython.display import Audio

# download and load all models
preload_models()

# generate audio from text
text_prompt = """
     Hello, my name is Suno. And, uh — and I like pizza. [laughs] 
     But I also have other interests such as playing tic tac toe.
"""
audio_array = generate_audio(text_prompt)

# play text in notebook
Audio(audio_array, rate=SAMPLE_RATE)

45、segment-anything:分割一切的影像分割模型。它是來自 Meta AI 研究院的影像分割模型,只需一鍵就可以“切出”影像中的任何物件。它在 1100 萬張影像和 11 億個掩碼(mask) 的資料集上完成了訓練,能夠在各種分割任務上具有很強的零樣本(zero-shot) 效能。來自 @孤膽槍手 的分享

最後

如果你發現了 GitHub 上有趣的專案,就點選這裡分享給大傢伙吧!

以上就是本期的所有內容了,往期內容點選閱讀

感謝您的閱讀,如果覺得本期內容還不錯的話 求贊、求分享 ❤️

相關文章