《HelloGitHub》第 70 期
- 2022 年 1 月 28 日
- 筆記
- HelloGitHub
興趣是最好的老師,HelloGitHub 讓你對編程感興趣!
簡介
HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。
這裡有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種程式語言 Python、Java、Go、C/C++、Swift…讓你在短時間內感受到開源的魅力,對編程產生興趣!
以下為本期內容|每個月 28 號更新
C 項目
1、daytripper:上班摸魚神器之雷射絆腳器。它分為發射器和接收器兩部分,設置好後會在有人路過絆腳器時,自動觸發隱藏桌面、切換應用等操作
2、tinyssh:極簡 SSH 伺服器。為了便於學習僅保留了基礎功能,而且拋棄了較舊的加密演算法。該項目的學習價值大於實用價值,適合對 SSH 和加密知識感興趣的小夥伴
C# 項目
3、LiveCharts2:簡單、靈活、強大的 .Net 圖表庫。支援 WPF、WinForms、WinUI、UWP 等
4、PowerRemoteDesktop:僅用 PowerShell 實現的遠程桌面工具。它易於安裝和使用、功能齊全,未依賴現有的協議和工具
5、.NET-Backend-Developer-Roadmap: .NET 後端學習路線圖
6、PDFPatcher:多功能的 PDF 工具箱,可用於修改 PDF 文件資訊。支援:
- 修改、合併 PDF 文檔
- 自動生成書籤
- 書籤編輯器
- 高速無損地導出文件中的圖片
- 等等
C++ 項目
7、timg:在終端查看圖片、動圖、影片的命令行工具
timg some-image.jpg # 展示圖片
timg --loops=3 some-animated.gif # 循環展示三次動圖
timg some-video.mp4 # 播放影片
8、oclint:強大的靜態程式碼分析工具。可以用來檢查 C、C++ 和 Objective-C 程式碼,發現潛在的 Bug 提高程式碼品質
9、CGraph:無第三方依賴的 DAG 調度框架。實現了依賴節點依次執行、無依賴節點並發執行的邏輯。項目結構清晰、文檔齊全,不僅程式碼中包含關鍵注釋,還有示例程式碼和講解文章。初學者可以通過該項目學到圖調度方式、模組開發、模板編程、多執行緒編程、設計模式和通用演算法的知識
void tutorial_simple() {
/* 創建一個流水線,用於設定和執行流圖資訊 */
GPipelinePtr pipeline = GPipelineFactory::create();
GElementPtr a, b, c, d = nullptr;
/**
* 其中,MyNode1運算元的執行內容為sleep(1s)
* MyNode2運算元的執行內容為sleep(2s)
* 以下幾行程式碼,相當於是設定了一個[b/c]依賴[a],[d]依賴[b/c]的dag流圖
*/
pipeline->registerGElement<MyNode1>(&a, {}, "nodeA");
pipeline->registerGElement<MyNode2>(&b, {a}, "nodeB");
pipeline->registerGElement<MyNode1>(&c, {a}, "nodeC");
pipeline->registerGElement<MyNode2>(&d, {b, c}, "nodeD");
/* 執行流圖框架 */
pipeline->process();
GPipelineFactory::destroy(pipeline);
}
Go 項目
10、gotests:自動生成 Go 語言測試程式碼的工具。該項目基於表驅動測試法(TableDrivenTests)自動生成測試程式碼,表驅動測試法是創建一張數據表格,每一行為輸入和預期輸出值,然後用這張表格的數據測試程式碼
11、gotop:用 Go 寫的系統監控命令行工具。重點是帶實時折線圖,看起來比較炫酷
12、minio:採用 Go 編寫的開源對象存儲服務。支援存儲圖片、影片、日誌等文件,還擁有方便操作的 Web 管理後台。雖然輕量卻有著不錯的性能,同時採用 RS code 編碼演算法實現即使丟失一半的硬碟,依舊可以找回數據。適用於大數據、機器學習等場景
- 高性能:單個文件最大支援 5T,讀寫速率最高可以達到 55Gb/s 和 35Gb/s
- 可擴展:不同集群可以組合,支援跨越多個數據中心
- 雲原生:支援容器化、基於 K8S 的編排、多租戶
- 對接多種後端存儲:支援 S3、DAS、 NAS、Google 等雲存儲
13、octosql:用 SQL 的方式查詢多個數據源的命令行工具。支援用 SQL 查詢 CSV、JSON 文件和多種資料庫中的數據,甚至可以在它們之間自由 JOIN
octosql "SELECT * FROM ./myfile.json"
octosql "SELECT * FROM ./myfile.json" --describe # Show the schema of the file.
octosql "SELECT invoices.id, address, amount
FROM invoices.csv JOIN db.customers ON invoices.customer_id = customers.id
ORDER BY amount DESC"
octosql "SELECT customer_id, SUM(amount)
FROM invoices.csv
GROUP BY customer_id"
14、go-pry:Go 語言的互動式 REPL 命令行工具
# 安裝
go get github.com/d4l3k/go-pry
go install -i github.com/d4l3k/go-pry
# 運行
go-pry -i="fmt,math,strconv"
Java 項目
15、thumbnailator:Java 的縮略圖生成庫
16、momo-code-sec-inspector-java:Java 靜態程式碼安全審計工具。它能夠在編碼過程中發現潛在的安全風險,並提供一鍵修復的功能,可在 IDEA 的插件市場安裝
17、maven-mvnd:Apache Maven 團隊開源的更快的構建工具。因為內嵌了 Maven 所以可以絲滑地從 Maven 切換為 mvnd,而且它相較於 Maven 啟動速度更快、使用的記憶體更少、編譯花費的時間更少
18、agrona:提供了用於創建高性能應用的數據結構和實用方法的庫。它將 Java 標準庫中的數據結構進行包裝,避免了 Java 自動裝箱。比如提供的隊列使用了填充位元組的方式,避免頭尾結點進入同一緩衝行,來提高隊列出隊入隊的性能。整個項目程式碼量不多注釋完善、程式碼風格清晰,拋開使用來講也是一個值得學習的項目
JavaScript 項目
19、js-sdsl:實用的 JavaScript 數據結構庫。實現了 LinkList、Queue、Set、Map 等數據結構,嚴格的單元測試提供了正確性和性能的保證,可用於各種需要用到高級數據結構的場景
<script src="//zly201.github.io/js-sdsl/js-sdsl.min.js"></script>
<script>
const { Vector } = sdsl;
const myVector = new Vector();
// you code here...
</script>
20、resume:在線簡歷生成器。輕鬆實現在線簡歷,支援在線預覽、編輯和下載 PDF 簡歷。在線嘗試
21、mometa:前端程式碼可視化編輯器。一款低程式碼輔助開發的工具,可通過拖拽的方式構建和編輯頁面。特性:
- 🛠 直接作用於源碼,支援移動端布局
- 🍒 開放物料生態,可訂製團隊內物料庫
- 🌟 無縫兼容接入,不破壞已有項目開發模式
22、shepherd:用來引導用戶瀏覽網站的 JavaScript 庫
23、lottery:年會抽獎程式。基於 Express + Three.js 的 3D 球體抽獎項目,能夠自定義文字、圖片和抽獎規則,還支援一鍵導入抽獎人員和導出抽獎結果
Objective-C 項目
24、Stay:移動端 Safari 瀏覽器插件管理器。提供了豐富的腳本管理能力,還支援運行油猴插件。內置的腳本庫提供了 App 防跳轉、廣告攔截、自動展開文本等功能
PHP 項目
25、dootask:在線項目管理平台。功能包括任務分配、文檔協作、即時 IM、文檔協作、文件管理等
26、esupdater:基於 Canal 的 ES 增量更新框架。適用於把 MySQL 的增量數據,實時更新到 ES 實現同步更新搜索數據
Python 項目
27、Hitomi-Downloader:Python 寫的桌面下載工具。介面簡單使用方便,擁有下載限速、BT 種子、自動提取網頁影片等功能,支援下載中國多個影片網站的內容
28、django-grappelli:美化 Django 默認管理後台介面的庫
# 安裝
pip install django-grappelli
# 設置 settings.py 文件
INSTALLED_APPS = (
'grappelli',
'django.contrib.admin',
)
# 增加路徑
urlpatterns = [
path('grappelli/', include('grappelli.urls')), # grappelli URLS
path('admin/', admin.site.urls), # admin site
]
# 增加請求處理器
TEMPLATES = [
...
'OPTIONS': {
'context_processors': [
...
'django.template.context_processors.request',
...
]
# 最後
python manage.py collectstatic
29、trzsz:簡單實用的文件傳輸工具。支援 tmux 和 iTerm2 一起使用,並且有顯示上傳/下載進度的進度條
Ruby 項目
30、fastlane:一款專為 iOS 和 Android 開發者提供自動化構建的工具。它上手簡單使用方便,能夠幫助開發者自動完成 App 打包、簽名、測試、發布、提交到 App Store、Google Play 等工作,實現一條命令發布應用
lane :beta do
increment_build_number
build_app
upload_to_testflight
end
lane :release do
capture_screenshots
build_app
upload_to_app_store # 上傳截圖和應用到應用商店
slack # 發布完成回調通知
end
Swift 項目
31、SwiftPamphletApp:一款免費開源的 Swift 手冊工具。能夠幫助開發者方便的查看 Swift 語法和常用庫的使用指南,除此之外還可以接收 Swift 開源庫的動態
32、iGlance:macOS 狀態欄系統監視器
其它
33、m-cli:macOS 命令行工具。實現在終端用簡短命令的方式操作 macOS 系統,比如管理藍牙、打開 Wi-Fi、清空廢紙簍、操作 iTunes 等
34、WhiteSur-gtk-theme:仿蘋果 Big Sur 風格的 GTK 主題
35、JetBrainsMono:JetBrains 為開發者開源的免費字體。該字體形狀簡單沒有不必要的細節,從而閱讀起來十分輕鬆而且小尺寸時顯示更加清晰
36、one-html-page-challenge:單個 HTML 頁面的挑戰。該項目彙集了滿足僅有一個 HTML 文件、小於 1MB、不可接入 API、不能引用庫條件下實現的創意網頁。在線查看
37、realworld:該項目彙集了不同技術棧的實戰項目。這裡有採用不同程式語言框架,實現相同功能內容網站的項目程式碼。例如用 Vue.js+Django 開發包含註冊、登錄、發布文章、標籤、評論等功能的網站,讓你通過簡單但完整的實戰項目,快速上手新的技術棧,消除剛接觸某個技術時的手足無措。點擊查看
開源書籍
38、rust-course:《Rust 語言聖經》涵蓋了 Rust 語言從入門到精通的全部知識。該書目前還未完成,正處於積極更新的狀態。在線閱讀
39、safe-rules:由 360 品質工程部開源的《程式碼安全規則集合》。一份全面詳細的 C/C++ 編程規範指南,適用於桌面、服務端以及嵌入式等軟體開發
機器學習
40、VNN:高性能、輕量級的神經網路部署框架。支援人臉關鍵點檢測、卡通影像風格化、天氣場景識別等功能,打包全部功能後的 SDK 體積還不到 3 MB,適用於 Android、iOS 等作業系統
最後
如果你發現了 GitHub 上有趣的項目,就點擊分享給大傢伙吧。
以上就是本期的所有內容了,往期內容點擊閱讀
感謝您的閱讀,如果覺得本期內容還不錯的話 求贊、求分享, 您的鼓勵就是 HelloGitHub 前進的動力!❤️
最後提前祝大家新年快樂! 年後見嘍!