興趣是最好的老師,HelloGitHub 讓你對程式設計感興趣!
HelloGitHub 分享 GitHub 上有趣、入門級的開源專案。
這裡有實戰專案、入門教學、黑科技、開源書籍、大廠開源專案等,涵蓋多種程式語言 Python、Java、Go、C/C++、Swift...讓你在短時間內感受到開源的魅力,對程式設計產生興趣!
以下為本期內容|每個月 28 號更新
1、entr:在檔案有改動時自動觸發任意命令的工具。採用 kqueue 或 inotify 事件通知介面監聽檔案改動事件,避免輪詢造成的資源浪費,可用於實現自動編譯、重啟、測試、同步等功能
# 自動 make
find src/ | entr sh -c 'make | head -n 20'
# 自動重啟服務
ls *.js | entr -r node app.js
2、open-gpu-kernel-modules:英偉達開源的 Linux GPU 核心驅動。關於開源的原因網友們眾說紛紜駭客勒索、被 Linus 罵的、擁抱開源,但無論如何這是件好事,至於這件事後續對 Linux 系統的影響就讓我們拭目以待吧
3、sioyek:免費開源的 PDF 閱讀器。支援互動式快速搜尋檔案,而且就算檔案中的參照沒有連結也可以直接跳轉,特別適合 PC 端閱讀和研究論文、技術檔案等
4、ServerStatus:多伺服器雲監控。輕鬆監控多臺伺服器狀態的工具,用於解決多個不同平臺下的伺服器狀態監控問題
5、FreeRDP:完全免費的遠端桌面管理工具。此專案為遠端桌面協定(RDP)的一個開源實現,通過它可以輕鬆實現 macOS 或 Linux 遠端操作 Windows 桌面系統反之亦可,使用起來十分方便和流暢。下載地址
6、TowerDefense-GameFramework-Demo:開源的塔防遊戲範例。此專案主要用來上手和學習基於 Unity 引擎的遊戲框架 GameFramework,感興趣的同學可以把玩一下。遊戲共有五個關卡,玩家通過擊殺敵人和建造能量塔獲取資源,消耗能量建造防禦塔阻止敵人攻擊基地
7、Cpp_Primer_Practice:《C++ Primer》中文版第 5 版的學習筆記。該專案不僅包含學習筆記還有課後習題的答案
8、serenity:開源桌面作業系統。一款披著復古外衣現代的類 Unix 開源作業系統。從核心到 Web 瀏覽器均採用 C++ 編寫,沒有依賴現成的第三方庫,外觀模仿 90 年代作業系統介面的風格,我認為這是一封極客致敬經典的情書
9、polybar:超酷的 Linux 桌面狀態列工具。使用時無需精通 shell 就能上手,輕鬆完成高度自定義的狀態列。還有更多現成的主題,拿來即用點選檢視
10、weui:微信開源的原生基礎樣式庫。為微信內網頁和小程式量身設計的樣式庫,包括按鈕、徽章、進度條、圖示、對話方塊等各式元素
11、httprunner:開源的 API 測試工具。支援豐富的網路協定,涵蓋介面測試、效能測試等測試型別的測試工具
12、fx:命令列 JSON 瀏覽工具。看似簡單卻十分實用的 JSON 命令列查詢工具,支援流式和互動式兩種查詢方式
13、zinc:輕量級全文搜尋引擎。Go 語言下的輕量級搜尋引擎,支援中文搜尋自帶 Web 管理介面
14、ants:高效能 goroutine 池。實現了大規模下的 goroutine 排程和複用,從而節省資源提高執行效果。還有如任務提交、動態調整 pool 大小、查詢執行狀態等實用介面
15、jclasslib:Java 位元組碼瀏覽器。支援視覺化操作、檢視、編輯編譯好的 Java 類檔案的開發工具
16、RuoYi:開箱即用的許可權管理系統。基於 SpringBoot 開發的後臺管理系統,包含使用者管理、部門管理、角色管理、登入紀錄檔、定時任務、服務監控等功能,可以用來快速構建 CMS、CRM、OA 等系統
17、debezium:捕獲資料更改(CDC)的流式處理平臺。可以監控資料庫中的資料變動,把每一個行級別的資料改動,通過流的方式實時同步給其他服務。適用於更新快取、更新搜尋、雙寫等場景
18、shardingsphere:一套開源的分散式資料庫增強計算引擎。可將多種資料庫轉換為分散式資料庫的生態系統,就是把多種不同型別的資料整合成對外是一個整體的資料庫,即化零為整。充分合理地利用資料庫的計算和儲存能力,解決資料分片、資料加密、異構資料查詢等痛點
19、hertzbeat:易用友好的雲監控系統。適用於應用服務、資料庫、網站、API、作業系統等監控的場景,可以幫助中小型團隊快速搭建監控系統
20、fortune-sheet:類似 Excel 的電子試算表元件。使用簡單無需繁瑣的設定,內建多種 Excel 常用功能,並且支援線上協同編輯
import React from 'react';
import ReactDOM from 'react-dom';
import { Workbook } from "@fortune-sheet/react";
import "@fortune-sheet/react/dist/index.css"
ReactDOM.render(
<Workbook data={[{ name: "Sheet1" }]} ></Workbook>,
document.getElementById('root')
);
21、xterm.js:功能齊全的終端前端元件。用 TypeScript 編寫的前端元件,提供了完整的終端功能、支援滑鼠事件、豐富的 Unicode 支援。在眾多流行開源專案中都能看到它的身影,比如 VS Code、Hyper 和 Theia 等
22、WebGAL:無需開發基礎分分鐘就能學會所有語法,立馬開始創作自己的 Galgame。線上嘗試
23、bytemd:掘金社群開源的 Markdown 編輯器元件。基於 Svelte 構建的 Markdown 編輯器元件,功能齊全還可以通過外掛擴充套件功能,預設安全且相容 SSR,適用於 React、Vue 和 Angular 框架
// React
import { Editor, Viewer } from '@bytemd/react'
import gfm from '@bytemd/plugin-gfm'
const plugins = [
gfm(),
// Add more plugins here
]
const App = () => {
const [value, setValue] = useState('')
return (
<Editor
value={value}
plugins={plugins}
onChange={(v) => {
setValue(v)
}}
/>
)
}
24、PermissionX:解決 Android 執行時許可權的庫。該專案本是作者寫的一本書中的練手專案,後來經過不斷優化和功能迭代,已經可以真正做到簡化 Android 執行時許可權處理的工作,所以就有了我們現在看到的 PermissionX。時至今日它依舊在持續更新,沒有停下變得更好的腳步,或許這就是工匠精神的體現吧。中文檔案
25、framework:簡約大方的論壇專案。這是一個用 PHP+Mithril 開發的免費、美觀、簡單、速度快的論壇系統
26、pyenv:簡單易用的 Python 版本管理工具。開發者有時候因為歷史遺留問題,需要維護依賴不同 Pyhton 版本的專案,這時就需要安裝和管理多個 Python 版本,這是一件十分痛苦的事情。而 pyenv 恰好完美地解決了這一痛點,它支援 global、local、shell 三種模式,開發者可以根據情況靈活地切換不同的 Python 版本,這一切僅需一條命令
安裝 pyenv:brew install pyenv
安裝 Python:pyenv install 3.10.4
切換版本:pyenv shell|local|global
shell:當前 shell
local:當前目錄
global:全域性
27、Archery:線上 SQL 稽核平臺。採用 Django+Bootstrap 框架開發而成,支援 MySQL、Oracle 等資料庫的 SQL 上線、備份、慢紀錄檔查詢等功能。線上嘗試
28、xxh:在 SSH 伺服器時帶上自己喜歡的 shell。你的 shell 裡是不是塞滿了快捷指令碼、工具和顏色,但在 SSH 遠端連線伺服器時,你就會失去這一切。xxh 可以把你最喜歡的 shell 帶到任何地方
Oh My Zsh:source xxh.zsh anyhost +I xxh-plugin-zsh-ohmyzsh +if +q
xonsh:xxh anyhost +s xonsh
29、Handright:模擬手寫體中文的 Python 庫。基於 PIL 開發實現的工具庫,能夠輸出手寫體中文的圖片,支援自定義背景圖
# coding: utf-8
from PIL import Image, ImageFont
from handright import Template, handwrite
text = "分享 GitHub 上有趣、入門級開源專案"
template = Template(
background=Image.new(mode="1", size=(1024, 2048), color=1),
font=ImageFont.truetype("path/to/my/font.ttf", size=100),
)
images = handwrite(text, template)
for im in images:
assert isinstance(im, Image.Image)
im.show()
30、OneForAll:功能強大的子域收集工具。具有強大的子域收集能力、支援子域驗證、速度快等特點的子域掃描工具
31、solidus:開源的簡約電商平臺。基於 Ruby on Rails 構建的電商平臺,介面清爽程式碼完全開源。線上嘗試
32、mdBook:Rust 官方開源的 Markdown 電子書構建工具。類似 Gitbook 可以將 Markdown 檔案製作成線上書籍,簡單易用非常適合建立教學、課程材料、開源書籍等文稿
33、TermiWatch:終端風格的 iWatch 手錶面
34、opensource.guide:GitHub 官方的開源指南。為想學習如何建立和貢獻開源專案的個人、社群和公司提供的資源集合,中文
35、pinball:谷歌開源的彈珠檯遊戲。使用 Flutter 和 Firebase 平臺開發的彈珠檯遊戲,可執行在 Android、iOS、Windows、macOS、Linux 作業系統。線上試玩
36、A-Programmers-Guide-to-English:專為程式設計師編寫的英語學習指南。一位程式設計師提升英語水平的實踐經驗分享,還有相關訓練方法和用到的工具,點選檢視
37、code996:根據 git 的提交時間推斷工作強度的工具。通過分析 git 提交記錄,得出是否加班、工作強度的視覺化圖表的工具
38、Thanks-Mirror:國內公共倉庫映象的集合。該專案包含開發常用的庫、軟體、系統映象地址以及使用的方法
39、flutter_floatwing:Flutter 的 Android 浮動視窗外掛。該外掛能夠讓開發者使用 Flutter 完成浮動視窗的功能開發,同時無需任何原生 Android 開發的背景
40、wechat-report:自制微信聊天年度報告。教你如何生成和女朋友微信聊天記錄的年度報告專案
41、TCP-IP-NetworkNote:《TCP/IP 網路程式設計》學習筆記。除了筆記還包含書中的程式碼實現和課後習題回答
42、machine-learning-yearning-cn:《Machine Learning Yearning》中文版。《機器學習訓練祕籍》樣稿吳恩達著,線上閱讀
43、the-unix-workbench:《The Unix Workbench》該書面向剛接觸程式設計和類 Unix(如 macOS)和 Linux 作業系統的開發者,幫你快速上手命令列以及搞懂相關知識。線上閱讀
44、WantWords:拯救詞窮的字典。由清華大學 NLP 實驗室開源,可以根據你的意思返回相關詞彙,有效解決詞窮、話到嘴邊說不出來的窘境。線上嘗試
45、mindsdb:用 SQL 開啟機器學習的資料庫。把機器學習引入 SQL 資料庫將模型作為虛擬表(AI-table),從而省去了資料準備、預處理等步驟,可以直接用 SQL 查詢時間序列、迴歸、分類預測的結果,實現簡化機器學習開發流程的效果
46、machine_learning_complete:全面的機器學習教學庫。一份包含 30 多個 Jupyter Notebook 的集合庫,內容涵蓋機器學習所需的 Python 基礎,資料操作、清洗、分析、視覺化常用的庫和工具,以及經典機器學習、NLP、計算機視覺等演演算法,一份面面俱到的機器學習入門教學
如果你發現了 GitHub 上有趣的專案,就點選分享給大傢伙吧。
以上就是本期的所有內容了,往期內容點選閱讀
感謝您的閱讀,如果覺得本期內容還不錯的話 求贊、求分享 ❤️
作者:削微寒
掃描左側的二維條碼可以聯絡到我
本作品採用署名-非商業性使用-禁止演繹 4.0 國際 進行許可。