《HelloGitHub》第 80 期

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

簡介

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

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

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


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

C 項目

1、cockpit:基於 Web 的服務器圖形界面。這是一款開源的服務器管理工具,讓你可以通過 Web 界面輕鬆管理 Linux 服務器,支持配置防火牆、Web 終端、容器管理、查看系統日誌等功能。

C# 項目

2、Malware-Patch:阻止 Windows 流氓軟件授權的工具。它輕巧、無需後臺運行,可用於阻止指定軟件的管理員授權。

C++ 項目

3、Magisk:Android 獲取 Root 權限的工具。它可以快速、無痛地獲得 Android 的超級用戶權限,支持 Android 5.0 以上的設備。

4、osquery:像數據庫一樣查詢設備的工具。它將操作系統抽象成一個數據庫,讓用戶可以通過 SQL 查詢操作系統的運行情況,比如運行中的進程、網絡連接、文件和用戶。攻擊者一般會在運行惡意程序後刪掉程序,通過 osquery 可以輕鬆找到沒有源文件的進程。

osquery> SELECT name, path, pid FROM processes WHERE on_disk = 0;
name = Drop_Agent
path = /Users/jim/bin/dropage
pid = 561

CSS 項目

5、css-only-chat:僅用 CSS 實現網絡聊天。前端不用 JavaScript 只用 CSS 實現網絡聊天的功能,祕訣是僞選擇器加載的背景圖像和永遠加載的索引頁。

.some-button:active {
  background-image: url('some_image.jpg')
}

Go 項目

6、cadvisor:一款由 Google 開源的容器監控工具。它可以實時統計容器運行時佔用的資源,包括 CPU 利用率、內存使用量、網絡傳輸等信息。提供了 Web 可視化頁面,能方便用戶分析和監控容器運行狀態,支持包括 Docker 在內的幾乎所有類型的容器。

sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  gcr.io/cadvisor/cadvisor:$VERSION

7、dsq:可直接用 SQL 查詢數據文件的命令行工具。通過該項目無需將數據導入數據庫,就能用 SQL 查詢文件內的數據,可執行模糊查詢、計數、排序等命令,支持 JSON、CSV、Excel、Parquet、YAML 等類型的文件。還可以搭配其它命令行工具(jq),實現更豐富的功能。

$ dsq testdata/userdata.parquet 'select count(*) from {}' | jq
[
  {
    "count(*)": 1000
  }
]

8、json-to-go:立刻將 JSON 轉化爲 Go 類型定義的工具。這是一個用 JavaScript 寫的在線小工具,可以直接將輸入的 JSON 轉成對應的 Go 類型定義。

9、pocketbase:僅一個文件的開源後端。將 SQLite 數據庫、接口服務、登錄認證、管理後臺等服務器端的功能,做成一個開箱即用的可執行文件。讓原本不懂後端開發的用戶,也可以通過用戶界面快速構建起接口服務。

10、supervisord:用 Go 重新實現的 supervisord 。開源項目 supervisord 作爲 Python 項目中常用的進程管理工具,深受廣大開發愛好者的喜歡。但如果在非 Python 環境的情況下,用起來就不是那麼順手啦,所以作者用 Go 重寫了 supervisord,編譯後可以方便地運行在任何環境下。

$ cat supervisor.conf
[program:test]
command = /your/program args
$ supervisord -c supervisor.conf

Java 項目

11、Aegis:一款免費、安全、開源的 2FA 安卓應用。雙重認證(2FA) 就是使用兩種不同的元素來確認用戶身份,比如用戶名和密碼是一種元素,手機號和短信驗證碼也是一種元素,兩種元素結合就是雙重認證。除了短信之外還有一種 APP 可生成和驗證碼功能類似的一次性密碼(TOTP),Aegis 就是一款支持 HOTP 和 TOTP 算法的開源 2FA 應用,使用時要先將手機和賬號綁定,綁定後 APP 就會定時刷新一組隨機數字,需要雙重認證時輸入這串數字即可。

12、jenkins:一款由 Java 編寫的開源持續集成工具。做爲開源 CI/CD 軟件的王者,它專注於自動化你的開發工作流程,具有安裝簡單、友好的操作頁面、易於擴展、分佈式的特點,常用來優化項目開發流程或自動化各種任務。

1. 下載 jar 包
2. 運行:java -jar jenkins.war --httpPort=8080
3. 打開瀏覽器訪問:http://localhost:8080
4. 根據提示完成安裝

13、wvp-GB28181-pro:開箱即用的網絡視頻平臺。基於 GB28181 標準實現的網絡視頻平臺,能夠接入攝像機、平臺、NVR 等設備、支持視頻預覽、雲臺控制、錄像查詢和回放、無人觀看自動斷流等功能。

JavaScript 項目

14、cypress:基於 JavaScript 的下一代前端測試工具。主要用於瀏覽器端到端測試的自動化工具,端到端(E2E)測試就是站在用戶的角度,模擬實際使用場景的測試方式。Cypress 目前已成主流瀏覽器端到端測試工具,它運行速度快、上手簡單,支持圖形化界面可實時觀察執行情況,以及截屏和視頻記錄測試結果。

15、Dashboard:一款完全自定義配置的瀏覽器起始頁。基於 Vite+Vue3+TypeScript 構建的瀏覽器起始頁,預設了多款簡潔清爽的主題開箱即用,能夠隨心所欲地添加組件,編輯模式下可拖拽組件更改大小和位置,支持瀏覽器插件和網頁兩種使用方式。

16、Rocket.Chat:一款可自由定製的企業級開源通信平臺。功能豐富的通信平臺,可自託管做爲 Slack 的開源替代品。支持創建頻道、團隊和討論等多種不同功能的羣聊,消息支持圖片、文件、視頻和語音,擁有包括 Windows、Linux、macOS、Android 和 iOS 在內的多種客戶端。

17、slidev:專爲程序員打造的演示文稿工具。該項目是基於 Web 的幻燈片製作和演示工具,讓用戶可以使用 純文本+Markdown 語法制作幻燈片,支持導出爲 PDF 或 PNG 格式的文件,或以單頁面展示幻燈片。對於大多數不擅長做 PPT 的程序員,基於提供的現成主題也可以製作出看起來不錯的演示文稿。

18、the-super-tiny-compiler:可能是最小的編譯器。僅用 1000 行 JavaScript 代碼實現的迷你編譯器,其中註釋還佔了一大半,實際代碼只有 200 行左右。它雖然代碼量不多,但完整地實現了編譯器基本功能,可以用來學習編譯器原理。

PHP 項目

19、YOURLS:完全免費的短網址服務。採用 PHP 編寫的短網址服務,它完全開源可自行搭建服務,支持數據統計、地理位置、可視化等功能。

Python 項目

20、calibre:一款功能強大的電子書管理工具。它是集下載、格式轉化、製作、管理於一體的電子書工具,比如可以將 txt 文本,轉化成包含作者信息和書籍封面的 mobi 文件,製作完成後還可以直接發送到 Kindle 設備上。

21、changedetection.io:簡單好用的網站變更檢測、監控和通知服務。基於 Flask+Selenium 構建的 Web 服務,可以在目標網站發生變化時發出通知,可用於監控商品降價、工作機會、版本發佈、最新內容等,支持 Docker 的安裝方式。

22、Macast:一款輕巧的投屏接收器。該項目可以讓電腦接收來自手機的視頻、圖片和音樂投屏,支持手機上的主流視頻和音樂軟件,以及其它符合 DLNA 協議的軟件。無打擾地運行在狀態欄和菜單欄,適用於 Windows、macOS、Linux 操作系統。

23、reloadium:Python 熱重載調試工具。在不重啓程序的前提下,通過這個項目可以查看改動後、最新的 Python 代碼運行效果,以及每行代碼的耗時。有了它可以更高效地調試 Python 代碼,強烈推薦在 PyCharm 和 VSCode 上使用。

24、rocketry:更加人性化的 Python 調度庫。可通過 Python 裝飾器語法,進行任務調度的 Python 庫。它簡單、優雅、高效,支持定時、併發(異步、多線程、多進程)、條件觸發等功能。

from rocketry import Rocketry
from rocketry.conds import daily

app = Rocketry()

@app.task(daily)
def do_daily():
    ...

@app.task(daily & file_exists("data.csv"))
def do_things():
    ...

if __name__ == '__main__':
    app.run()

Rust 項目

25、difftastic:命令行文件對比工具。一種可根據文件的語法,進行結構化比較的工具,支持 30 多種編程語言。

26、sniffnet:可輕鬆監控網絡流量的工具。這是一個簡單、可靠、炫酷的網絡監控應用,可以讓你一目瞭然地瞭解設備的網絡流量。

27、websocat:WebSockets 的命令行客戶端。一條命令連接或建立 WebSockets 服務,適用於 Windows、macOS、Linux。

A$ websocat -s 1234
Listening on ws://127.0.0.1:1234/
ABC
123

B$ websocat ws://127.0.0.1:1234/
ABC
123

Swift 項目

28、CotEditor:一款適用於 macOS 的輕量級純文本編輯器。它免費、整潔、啓動速度快,擁有看起來十分舒服的界面。

其它

29、fonteditor:在線字體編輯器。在線編輯、轉換、預覽字體文件,支持多種字體格式。

30、free-for-dev:專爲程序員準備的免費服務清單。現在雖然有大量免費的服務,但大多數開發者很難找到它們,這是一份免費服務(SaaS、PaaS、IaaS 等)和產品的列表。

31、GameShell:玩遊戲學習 Shell。這是一款幫助入門 shell 命令的文字遊戲。

32、hackingtool:黑客工具全家桶。該項目收錄了各種黑客工具,包括破解密碼、SQL 注入、釣魚攻擊、XSS、DDos 等。

33、platformio-core:專業的嵌入式開發平臺。做嵌入式開發時往往會遇到諸多不便,比如硬件廠商的 IDE 綁定和複雜的配置過程。這款 IDE 能讓你輕鬆突破這些限制,PlatformIO IDE 兼容 Arduino、樹莓派和 ESP32 在內的 40 多種平臺,以及超過 20+ 的框架。它不僅支持 Debug、代碼自動補全、單元測試、串口調試等實用的功能,還提供了 VSCode、Vim 等編輯器的插件,把開發工具的選擇權徹底地還給開發者。

34、sms_forwarding:超低成本的短信轉發器。通過該項目僅需 50 元就可以製作出一個短信轉發器,實現不用手機接收驗證碼。

開源書籍

35、Book3_Elements-of-Mathematics:《數學要素》從加減乘除到機器學習。全綵多圖的一本科普書,內容以圖解+數學+編程爲主。

36、parsing-techniques:《Parsing Techniques》解析技術。該書是編譯器前端的經典書籍。

37、py4e:《Python for Everybody》適合所有人的 Python。不管你有沒有編程基礎,只要對編程感興趣,都可以通過這本書學會 Python,進入有趣的編程世界。

機器學習

38、AiLearning-Theory-Applying:快速上手 AI 理論及應用實戰。該教程包含學習 AI 必備的數學基礎,機器學習實戰小項目、深度學習入門、自然語言通用框架 BERT 實戰,以及大量數據集。

39、vmaf:Netflix 開源的視頻質量評估算法。一種將人類視覺模型與機器學習結合的評估視頻質量的方法,目的是改善觀衆們的觀看體驗。

最後

如果你發現了 GitHub 上有趣的項目,就點擊分享給大傢伙吧。

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

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

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