《HelloGitHub》第 80 期
興趣是最好的老師,HelloGitHub 讓你對(duì)編程感興趣!

簡介
HelloGitHub 分享 GitHub 上有趣、入門級(jí)的開源項(xiàng)目。
https://github.com/521xueweihan/HelloGitHub
這里有實(shí)戰(zhàn)項(xiàng)目、入門教程、黑科技、開源書籍、大廠開源項(xiàng)目等,涵蓋多種編程語言 Python、Java、Go、C/C++、Swift...讓你在短時(shí)間內(nèi)感受到開源的魅力,對(duì)編程產(chǎn)生興趣!
以下為本期內(nèi)容|每個(gè)月 28 號(hào)更新
C 項(xiàng)目
1、cockpit:基于 Web 的服務(wù)器圖形界面。這是一款開源的服務(wù)器管理工具,讓你可以通過 Web 界面輕松管理 Linux 服務(wù)器,支持配置防火墻、Web 終端、容器管理、查看系統(tǒng)日志等功能。

地址:https://github.com/cockpit-project/cockpit
C# 項(xiàng)目
2、Malware-Patch:阻止 Windows 流氓軟件授權(quán)的工具。它輕巧、無需后臺(tái)運(yùn)行,可用于阻止指定軟件的管理員授權(quán)。

地址:https://github.com/the1812/Malware-Patch
C++ 項(xiàng)目
3、Magisk:Android 獲取 Root 權(quán)限的工具。它可以快速、無痛地獲得 Android 的超級(jí)用戶權(quán)限,支持 Android 5.0 以上的設(shè)備。

地址:https://github.com/topjohnwu/Magisk
4、osquery:像數(shù)據(jù)庫一樣查詢?cè)O(shè)備的工具。它將操作系統(tǒng)抽象成一個(gè)數(shù)據(jù)庫,讓用戶可以通過 SQL 查詢操作系統(tǒng)的運(yùn)行情況,比如運(yùn)行中的進(jìn)程、網(wǎng)絡(luò)連接、文件和用戶。攻擊者一般會(huì)在運(yùn)行惡意程序后刪掉程序,通過 osquery 可以輕松找到?jīng)]有源文件的進(jìn)程。
osquery> SELECT name, path, pid FROM processes WHERE on_disk = 0;
name = Drop_Agent
path = /Users/jim/bin/dropage
pid = 561
地址:https://github.com/osquery/osquery
CSS 項(xiàng)目
5、css-only-chat:僅用 CSS 實(shí)現(xiàn)網(wǎng)絡(luò)聊天。前端不用 JavaScript 只用 CSS 實(shí)現(xiàn)網(wǎng)絡(luò)聊天的功能,秘訣是偽選擇器加載的背景圖像和永遠(yuǎn)加載的索引頁。
.some-button:active {
background-image: url('some_image.jpg')
}
地址:https://github.com/kkuchta/css-only-chat
Go 項(xiàng)目
6、cadvisor:一款由 Google 開源的容器監(jiān)控工具。它可以實(shí)時(shí)統(tǒng)計(jì)容器運(yùn)行時(shí)占用的資源,包括 CPU 利用率、內(nèi)存使用量、網(wǎng)絡(luò)傳輸?shù)刃畔?。提供?Web 可視化頁面,能方便用戶分析和監(jiān)控容器運(yùn)行狀態(tài),支持包括 Docker 在內(nèi)的幾乎所有類型的容器。
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
地址:https://github.com/google/cadvisor
7、dsq:可直接用 SQL 查詢數(shù)據(jù)文件的命令行工具。通過該項(xiàng)目無需將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,就能用 SQL 查詢文件內(nèi)的數(shù)據(jù),可執(zhí)行模糊查詢、計(jì)數(shù)、排序等命令,支持 JSON、CSV、Excel、Parquet、YAML 等類型的文件。還可以搭配其它命令行工具(jq),實(shí)現(xiàn)更豐富的功能。
$ dsq testdata/userdata.parquet 'select count(*) from {}' | jq
[
{
"count(*)": 1000
}
]
地址:https://github.com/multiprocessio/dsq
8、json-to-go:立刻將 JSON 轉(zhuǎn)化為 Go 類型定義的工具。這是一個(gè)用 JavaScript 寫的在線小工具,可以直接將輸入的 JSON 轉(zhuǎn)成對(duì)應(yīng)的 Go 類型定義。

地址:https://github.com/mholt/json-to-go
9、pocketbase:僅一個(gè)文件的開源后端。將 SQLite 數(shù)據(jù)庫、接口服務(wù)、登錄認(rèn)證、管理后臺(tái)等服務(wù)器端的功能,做成一個(gè)開箱即用的可執(zhí)行文件。讓原本不懂后端開發(fā)的用戶,也可以通過用戶界面快速構(gòu)建起接口服務(wù)。

地址:https://github.com/pocketbase/pocketbase
10、supervisord:用 Go 重新實(shí)現(xiàn)的 supervisord 。開源項(xiàng)目 supervisord 作為 Python 項(xiàng)目中常用的進(jìn)程管理工具,深受廣大開發(fā)愛好者的喜歡。但如果在非 Python 環(huán)境的情況下,用起來就不是那么順手啦,所以作者用 Go 重寫了 supervisord,編譯后可以方便地運(yùn)行在任何環(huán)境下。
$ cat supervisor.conf
[program:test]
command = /your/program args
$ supervisord -c supervisor.conf

地址:https://github.com/ochinchina/supervisord
Java 項(xiàng)目
11、Aegis:一款免費(fèi)、安全、開源的 2FA 安卓應(yīng)用。雙重認(rèn)證(2FA) 就是使用兩種不同的元素來確認(rèn)用戶身份,比如用戶名和密碼是一種元素,手機(jī)號(hào)和短信驗(yàn)證碼也是一種元素,兩種元素結(jié)合就是雙重認(rèn)證。除了短信之外還有一種 APP 可生成和驗(yàn)證碼功能類似的一次性密碼(TOTP),Aegis 就是一款支持 HOTP 和 TOTP 算法的開源 2FA 應(yīng)用,使用時(shí)要先將手機(jī)和賬號(hào)綁定,綁定后 APP 就會(huì)定時(shí)刷新一組隨機(jī)數(shù)字,需要雙重認(rèn)證時(shí)輸入這串?dāng)?shù)字即可。

地址:https://github.com/beemdevelopment/Aegis
12、jenkins:一款由 Java 編寫的開源持續(xù)集成工具。做為開源 CI/CD 軟件的王者,它專注于自動(dòng)化你的開發(fā)工作流程,具有安裝簡單、友好的操作頁面、易于擴(kuò)展、分布式的特點(diǎn),常用來優(yōu)化項(xiàng)目開發(fā)流程或自動(dòng)化各種任務(wù)。
1. 下載 jar 包
2. 運(yùn)行:java -jar jenkins.war --httpPort=8080
3. 打開瀏覽器訪問:http://localhost:8080
4. 根據(jù)提示完成安裝
地址:https://github.com/jenkinsci/jenkins
13、wvp-GB28181-pro:開箱即用的網(wǎng)絡(luò)視頻平臺(tái)?;?GB28181 標(biāo)準(zhǔn)實(shí)現(xiàn)的網(wǎng)絡(luò)視頻平臺(tái),能夠接入攝像機(jī)、平臺(tái)、NVR 等設(shè)備、支持視頻預(yù)覽、云臺(tái)控制、錄像查詢和回放、無人觀看自動(dòng)斷流等功能。

地址:https://github.com/648540858/wvp-GB28181-pro
JavaScript 項(xiàng)目
14、cypress:基于 JavaScript 的下一代前端測試工具。主要用于瀏覽器端到端測試的自動(dòng)化工具,端到端(E2E)測試就是站在用戶的角度,模擬實(shí)際使用場景的測試方式。Cypress 目前已成主流瀏覽器端到端測試工具,它運(yùn)行速度快、上手簡單,支持圖形化界面可實(shí)時(shí)觀察執(zhí)行情況,以及截屏和視頻記錄測試結(jié)果。

地址:https://github.com/cypress-io/cypress
15、Dashboard:一款完全自定義配置的瀏覽器起始頁。基于 Vite+Vue3+TypeScript 構(gòu)建的瀏覽器起始頁,預(yù)設(shè)了多款簡潔清爽的主題開箱即用,能夠隨心所欲地添加組件,編輯模式下可拖拽組件更改大小和位置,支持瀏覽器插件和網(wǎng)頁兩種使用方式。

地址:https://github.com/leon-kfd/Dashboard
16、Rocket.Chat:一款可自由定制的企業(yè)級(jí)開源通信平臺(tái)。功能豐富的通信平臺(tái),可自托管做為 Slack 的開源替代品。支持創(chuàng)建頻道、團(tuán)隊(duì)和討論等多種不同功能的群聊,消息支持圖片、文件、視頻和語音,擁有包括 Windows、Linux、macOS、Android 和 iOS 在內(nèi)的多種客戶端。

地址:https://github.com/RocketChat/Rocket.Chat
17、slidev:專為程序員打造的演示文稿工具。該項(xiàng)目是基于 Web 的幻燈片制作和演示工具,讓用戶可以使用 純文本+Markdown 語法制作幻燈片,支持導(dǎo)出為 PDF 或 PNG 格式的文件,或以單頁面展示幻燈片。對(duì)于大多數(shù)不擅長做 PPT 的程序員,基于提供的現(xiàn)成主題也可以制作出看起來不錯(cuò)的演示文稿。

地址:https://github.com/slidevjs/slidev
18、the-super-tiny-compiler:可能是最小的編譯器。僅用 1000 行 JavaScript 代碼實(shí)現(xiàn)的迷你編譯器,其中注釋還占了一大半,實(shí)際代碼只有 200 行左右。它雖然代碼量不多,但完整地實(shí)現(xiàn)了編譯器基本功能,可以用來學(xué)習(xí)編譯器原理。

地址:https://github.com/jamiebuilds/the-super-tiny-compiler
PHP 項(xiàng)目
19、YOURLS:完全免費(fèi)的短網(wǎng)址服務(wù)。采用 PHP 編寫的短網(wǎng)址服務(wù),它完全開源可自行搭建服務(wù),支持?jǐn)?shù)據(jù)統(tǒng)計(jì)、地理位置、可視化等功能。

地址:https://github.com/YOURLS/YOURLS
Python 項(xiàng)目
20、calibre:一款功能強(qiáng)大的電子書管理工具。它是集下載、格式轉(zhuǎn)化、制作、管理于一體的電子書工具,比如可以將 txt 文本,轉(zhuǎn)化成包含作者信息和書籍封面的 mobi 文件,制作完成后還可以直接發(fā)送到 Kindle 設(shè)備上。

地址:https://github.com/kovidgoyal/calibre
21、changedetection.io:簡單好用的網(wǎng)站變更檢測、監(jiān)控和通知服務(wù)。基于 Flask+Selenium 構(gòu)建的 Web 服務(wù),可以在目標(biāo)網(wǎng)站發(fā)生變化時(shí)發(fā)出通知,可用于監(jiān)控商品降價(jià)、工作機(jī)會(huì)、版本發(fā)布、最新內(nèi)容等,支持 Docker 的安裝方式。

地址:https://github.com/dgtlmoon/changedetection.io
22、Macast:一款輕巧的投屏接收器。該項(xiàng)目可以讓電腦接收來自手機(jī)的視頻、圖片和音樂投屏,支持手機(jī)上的主流視頻和音樂軟件,以及其它符合 DLNA 協(xié)議的軟件。無打擾地運(yùn)行在狀態(tài)欄和菜單欄,適用于 Windows、macOS、Linux 操作系統(tǒng)。

地址:https://github.com/xfangfang/Macast
23、reloadium:Python 熱重載調(diào)試工具。在不重啟程序的前提下,通過這個(gè)項(xiàng)目可以查看改動(dòng)后、最新的 Python 代碼運(yùn)行效果,以及每行代碼的耗時(shí)。有了它可以更高效地調(diào)試 Python 代碼,強(qiáng)烈推薦在 PyCharm 和 VSCode 上使用。

地址:https://github.com/reloadware/reloadium
24、rocketry:更加人性化的 Python 調(diào)度庫??赏ㄟ^ Python 裝飾器語法,進(jìn)行任務(wù)調(diào)度的 Python 庫。它簡單、優(yōu)雅、高效,支持定時(shí)、并發(fā)(異步、多線程、多進(jìn)程)、條件觸發(fā)等功能。
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()地址:https://github.com/Miksus/rocketry
Rust 項(xiàng)目
25、difftastic:命令行文件對(duì)比工具。一種可根據(jù)文件的語法,進(jìn)行結(jié)構(gòu)化比較的工具,支持 30 多種編程語言。

地址:https://github.com/Wilfred/difftastic
26、sniffnet:可輕松監(jiān)控網(wǎng)絡(luò)流量的工具。這是一個(gè)簡單、可靠、炫酷的網(wǎng)絡(luò)監(jiān)控應(yīng)用,可以讓你一目了然地了解設(shè)備的網(wǎng)絡(luò)流量。

地址:https://github.com/GyulyVGC/sniffnet
27、websocat:WebSockets 的命令行客戶端。一條命令連接或建立 WebSockets 服務(wù),適用于 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地址:https://github.com/vi/websocat
Swift 項(xiàng)目
28、CotEditor:一款適用于 macOS 的輕量級(jí)純文本編輯器。它免費(fèi)、整潔、啟動(dòng)速度快,擁有看起來十分舒服的界面。

地址:https://github.com/coteditor/CotEditor
其它
29、fonteditor:在線字體編輯器。在線編輯、轉(zhuǎn)換、預(yù)覽字體文件,支持多種字體格式。

地址:https://github.com/ecomfe/fonteditor
30、free-for-dev:專為程序員準(zhǔn)備的免費(fèi)服務(wù)清單?,F(xiàn)在雖然有大量免費(fèi)的服務(wù),但大多數(shù)開發(fā)者很難找到它們,這是一份免費(fèi)服務(wù)(SaaS、PaaS、IaaS 等)和產(chǎn)品的列表。
地址:https://github.com/ripienaar/free-for-dev
31、GameShell:玩游戲?qū)W習(xí) Shell。這是一款幫助入門 shell 命令的文字游戲。

地址:https://github.com/phyver/GameShell
32、hackingtool:黑客工具全家桶。該項(xiàng)目收錄了各種黑客工具,包括破解密碼、SQL 注入、釣魚攻擊、XSS、DDos 等。

地址:https://github.com/Z4nzu/hackingtool
33、platformio-core:專業(yè)的嵌入式開發(fā)平臺(tái)。做嵌入式開發(fā)時(shí)往往會(huì)遇到諸多不便,比如硬件廠商的 IDE 綁定和復(fù)雜的配置過程。這款 IDE 能讓你輕松突破這些限制,PlatformIO IDE 兼容 Arduino、樹莓派和 ESP32 在內(nèi)的 40 多種平臺(tái),以及超過 20+ 的框架。它不僅支持 Debug、代碼自動(dòng)補(bǔ)全、單元測試、串口調(diào)試等實(shí)用的功能,還提供了 VSCode、Vim 等編輯器的插件,把開發(fā)工具的選擇權(quán)徹底地還給開發(fā)者。

地址:https://github.com/platformio/platformio-core
34、sms_forwarding:超低成本的短信轉(zhuǎn)發(fā)器。通過該項(xiàng)目僅需 50 元就可以制作出一個(gè)短信轉(zhuǎn)發(fā)器,實(shí)現(xiàn)不用手機(jī)接收驗(yàn)證碼。

地址:https://github.com/chenxuuu/sms_forwarding
開源書籍
35、Book3_Elements-of-Mathematics:《數(shù)學(xué)要素》從加減乘除到機(jī)器學(xué)習(xí)。全彩多圖的一本科普書,內(nèi)容以圖解+數(shù)學(xué)+編程為主。

地址:https://github.com/Visualize-ML/Book3_Elements-of-Mathematics
36、parsing-techniques:《Parsing Techniques》解析技術(shù)。該書是編譯器前端的經(jīng)典書籍。
地址:https://github.com/duguying/parsing-techniques
37、py4e:《Python for Everybody》適合所有人的 Python。不管你有沒有編程基礎(chǔ),只要對(duì)編程感興趣,都可以通過這本書學(xué)會(huì) Python,進(jìn)入有趣的編程世界。

地址:https://github.com/csev/py4e
機(jī)器學(xué)習(xí)
38、AiLearning-Theory-Applying:快速上手 AI 理論及應(yīng)用實(shí)戰(zhàn)。該教程包含學(xué)習(xí) AI 必備的數(shù)學(xué)基礎(chǔ),機(jī)器學(xué)習(xí)實(shí)戰(zhàn)小項(xiàng)目、深度學(xué)習(xí)入門、自然語言通用框架 BERT 實(shí)戰(zhàn),以及大量數(shù)據(jù)集。
地址:https://github.com/ben1234560/AiLearning-Theory-Applying
39、vmaf:Netflix 開源的視頻質(zhì)量評(píng)估算法。一種將人類視覺模型與機(jī)器學(xué)習(xí)結(jié)合的評(píng)估視頻質(zhì)量的方法,目的是改善觀眾們的觀看體驗(yàn)。

地址:https://github.com/Netflix/vmaf
最后
以上就是本期的所有內(nèi)容,還沒看過癮?點(diǎn)擊閱讀往期內(nèi)容。
如果安裝或運(yùn)行開源項(xiàng)目遇到問題,就看這篇文章吧!
如果您覺得本期內(nèi)容還不錯(cuò)的話 求贊、求分享,有了您的支持 HelloGitHub 一定會(huì)變得更好!??
- END -
?? 關(guān)注「HelloGitHub」收到第一時(shí)間的更新??
