《HelloGitHub》第 51 期
興趣是最好的老師,HelloGitHub 就是幫你找到興趣!
簡介
分享 GitHub 上有趣、入門級的開源專案。
這是一個面向程式設計新手、熱愛程式設計、對開源社群感興趣 人群的月刊,月刊的內容包括:各種程式語言的專案、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源專案大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社群中。
- 會程式設計的可以貢獻程式碼
- 不會程式設計的可以反饋使用這些工具中的 Bug
- 幫著宣傳你覺得優秀的專案
- Star 專案️
在瀏覽、參與這些專案的過程中,你將學習到更多程式設計知識、提高程式設計技巧、找到程式設計的樂趣。
最後 HelloGitHub
以下為本期內容|每個月 28 號釋出最新一期|點選檢視往期內容
C 專案
1、goaccess:實時 Web 日誌分析工具
2、u6a:函式語言程式設計語言 Unlambda 的一個樸素實現,包含位元組碼編譯器和直譯器。此專案可以幫助初學者理解函式語言程式設計的思想,並提供了實現函式語言程式設計語言直譯器的一些樸素思路。
- 效能優異:執行效能遠高於官方實現,且優於多數現有的開源實現
- 穩定可靠:有豐富的測試樣例支撐,可靠性高
- 簡單樸素:程式碼簡單易讀,且提供了實現思路檔案,對初學或者完全沒有學過編譯原理的新手非常友好
C# 專案
3、Netch:一款 Windows 平臺的開源遊戲加速工具
4、ScheduleMasterCore:一款基於 .NET Core 開發的分散式任務排程系統。支援豐富的排程型別、靈活可控的系統引數、簡易的 UI 操作、支援多節點高可用、業務 API 整合等等特性。同時支援多樣化的部署方式,容易上手
5、HandyControl:一套 WPF 控制元件庫。它幾乎重寫了所有原生樣式,同時包含 70 餘款自定義控制元件。支援跨平臺、國際化,適用於 MVVM 架構開發,扁平化設計、支援動態更換主題和背景色。豐富的自定義控制元件解決了 View 設計的痛點,讓程式設計師更加專注於業務邏輯的開發
C++ 專案
7、chinessChess:基於 Qt5 開發的中國象棋網路對戰平臺,支援單機和網路對戰
Go 專案
8、grmon:Goroutine 的命令列監控工具
9、HackChrome:Go 語言實現的從 Chrome 中獲取自動儲存的使用者名稱密碼工具。目前僅支援 Windows Chrome 中儲存的密碼,但是很有意思還可以學習怎麼用 Go 呼叫 DLL 動態連結庫的姿勢
10、seaweedfs:一款基於 Go 開發的部署方便、使用簡單且強大的分散式檔案系統
11、fate:起中文名工具,去吧!算名先生
Java 專案
12、JApiDocs:一個無需額外註解、開箱即用的 SpringBoot 介面檔案生成工具。特性:
- 程式碼即檔案
- 支援匯出 HTML
- 同步匯出客戶端 Model 程式碼
- 等等
13、PowerJob:基於 Akka 架構的新一代分散式任務排程與計算框架。支援 CRON、API、固定頻率、固定延遲等排程策略,支援單機、廣播、MapReduce 等多種執行模式,支援線上任務治理與運維,提供 Shell、Python、Java 等功能豐富的任務處理器,提供工作流來編排任務解決依賴關係,使用簡單,功能強大,檔案齊全。同類產品對比:
JavaScript 專案
14、react-trello:任務狀態管理面板元件。實現了拖拽方式管理任務狀態,點選即可編輯任務內容
15、perfume.js:用於測量第一個 dom 生成的時間、使用者最早可操作時間和元件的生命週期效能的庫。示例程式碼:
perfume.start('fibonacci');
fibonacci(400);
perfume.end('fibonacci');
// Perfume.js: fibonacci 0.14 ms
16、Mongood:MongoDB 圖形化的管理工具。特性:
- 基於微軟 Fluent UI,支援自動黑暗模式
- 支援完整的 Mongo-shell 資料型別和查詢語法,利用索引實現的自動查詢和排序
- 支援 Json 資料庫模式,既可用於 Server 也可用於 Client
17、TimeCat:一款 JS 的網頁錄屏工具。參考了遊戲錄影的原理而實現的渲染引擎,生成的錄影檔案只有傳統視訊的百分之一!還可以在錄製語音的同時自動生成字幕,匯出的視訊檔案可以跨端播放。目前已經開發一段時間,後續還將實現更多有意思的功能,歡迎持續關注。線上預覽
18、react-visual-editor:基於 React 元件的視覺化拖拽、搭建頁面的程式碼生成工具。所見即所得,可以完美還原 UI 設計搞,並支援多款型號手機(可配置)和 PC 效果展示,模板功能可以使你分享你的頁面或者頁面中區域性任何部分元件組合,減少相似頁面的重複操作。效果如下:
19、elevator.js:一個 back to top 返回頂部的外掛。如他的名字一樣,網頁在返回頂部過程中像電梯向上執行,當頁面返回到頂部時,會有電梯“到達”的提示音。叮~頁面已到達頂部
PHP 專案
20、code6:一款 GitHub 程式碼洩露監控系統,通過定期掃描 GitHub 發現程式碼洩露行為。特性:
- 全視覺化介面,操作部署簡單
- 支援 GitHub 令牌管理及智慧排程
- 掃描結果資訊豐富,支援批量操作
- 任務配置靈活,可單獨配置任務掃描引數
- 支援白名單模式,主動忽略白名單倉庫
Python 專案
21、rich:一個讓你的終端輸出變得“花裡胡哨”的三方庫。我的一位前輩告訴我,不要整那些花裡胡哨的主題和樣式,這是在自尋煩惱。可是臣妾做不到啊,這麼好看的終端輸出,讓我的心情都愉悅起來了。瞧那性感的語法高亮、整齊的表格、舒服的顏色、進度條等,一切都是值得的
22、poetry:Python 虛擬環境、依賴管理工具。依賴管理工具有很多,我相上了它有三點:通過單檔案 pyproject.toml 便可輕鬆的區別安裝、管理開發和正式環境、有版本鎖定可方便回滾、輸出介面簡單清爽。當然它還是個“新生兒”,嚐鮮的風險還是有的,選擇須謹慎
23、free-python-games:真入門級的 Python 遊戲集合庫。都是簡單的小遊戲:貪吃蛇、迷宮、Pong、猜字等,執行方便、程式碼簡單易懂。用遊戲開啟的你 Python 學習之旅,玩完再學原始碼,其樂無窮啊。安裝執行:
pip install freegames
python -m freegames.snake # freegames.遊戲名
24、py2sec:一款輕量級跨平臺 Python “加密”、加速的指令碼工具。原理是基於 Cython 將 .py 編譯成 run-time libraries 檔案:.so(Linux && Mac)或 .pyd(Win),一定程度上實現了“加密”保護原始碼的功能。引數詳解如下:
-v, --version 顯示 py2sec 版本
-h, --help 顯示幫助選單
-p, --pyth Python 的版本,預設為你的 Python 命令繫結的 Python 版本
-d, --directory Python 專案路徑(如果使用 -d 引數,將編譯整個 Python 專案)
-f, --file Python檔案(如果使用 -f,將編譯單個 Python 檔案)
-m, --maintain 標記你不想編譯的檔案或資料夾路徑
-x --nthread 編譯啟用的執行緒數
-q --quiet 靜默模式,預設 False
-r --release Release 模式,清除所有中間檔案,只保留加密結果檔案,預設 False
python py2sec.py -f test.py
python py2sec.py -f example/test1.py -r
python py2sec.py -d example/ -m test1.py,bbb/
25、oxfs:一個基於 sftp 協議的 fuse 網路檔案系統,功能上類似於 sshfs。特性:
- 引入了非同步併發讀遠端檔案機制,提高了檔案首次讀速度。
- 快取持久化到本地磁碟,下次掛載時訪問更加快速。
- 非同步任務負責同步檔案,避免低速的網路讀寫阻塞上層應用。
Swift 專案
26、Aerial:炫酷的蘋果系統屏保專案。該屏保視訊取材自蘋果零售店 Apple TV 的專用屏保,航拍質量超棒,快換上試試吧。直接下載 Aerial.saver.zip 檔案,解壓後雙擊檔案“即可食用”
其它
27、shan-shui-inf:自動生成一副山水畫
28、kuboard-press:一款基於 Kubernetes 的微服務管理介面。包含檔案、教程、管理介面和實戰分享
29、vscode-rainbow-fart:一款在你程式設計時花式誇你的 VSCode 擴充套件外掛。可以根據程式碼關鍵字,播放貼近程式碼意義的真人語音,並且有一個醒目的專案名字“彩虹屁”
30、flink-training-course:Flink 視訊直播教程回放集合
31、raft-zh_cn:《分散式 Raft 一致性演演算法論文》中文翻譯
32、GitHub-Chinese-Top-Charts:每週更新一次的 GitHub 中文專案排行榜
開源書籍
33、go-ast-book:《Go語法樹入門:開啟自制程式語言和編譯器之旅》
機器學習
34、Surprise:一款簡單易用基於 Python scikit 的推薦系統。如果你想用 Python 上手做一套推薦系統,那你可以試試它
35、djl:亞馬遜開源的一款基於 Java 語言的深度學習框架。對於 Java 開發者而言,可以在 Java 中開發及應用原生的機器學習和深度學習模型,同時簡化了深度學習開發的難度。通過 DJL 提供直觀的、高階的 API,Java 開發人員可以訓練自己的模型,或者利用資料科學家用 Python 預先訓練好的模型來進行推理。如果您恰好是對學習深度學習感興趣的 Java 開發者,那麼這個專案完全對口。執行效果如下:
36、data-science-ipython-notebooks:資料科學的 IPython 集合。包含:TensorFlow、Theano、Caffe、scikit-learn、Spark、Hadoop、MapReduce、matplotlib、pandas、SciPy 等方方面面
最後
如果你發現了 GitHub 上有趣的專案,歡迎在 HelloGitHub 專案提 issues 告訴我們。
關注 HelloGitHub 公眾號獲取第一手的更新