《HelloGitHub》第 84 期

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

簡介

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

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

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


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

C 項目

1、linked-list-good-taste:Linus Torvalds 解釋編碼品味的鏈表論證。在 2016 年的 TED 訪談中,Linus Torvalds 談到了他認爲好的編碼品味,並舉了一個例子:在單向鏈表中移除項目的兩種實現。爲了從鏈表中刪除第一項,其中一個實現需要處理特殊情況,而另一個則不需要,Linus 更喜歡後者。

2、rpi4-osdev:爲樹莓派 4 編寫操作系統的教程。這是一份 RealVNC 的 CTO 在樹莓派 4 裸機上,編寫操作系統的教程。內容分爲 15 個章節,每章完成操作系統的一個部分,並提供了源碼和講解。

3、xdotool:模擬鍵盤和鼠標操作的命令行工具。該項目可以通過命令的方式,模擬鍵盤輸入、鼠標點擊,以及移動、聚焦和調整窗口大小等操作,搭配上 shell 就是 DIY 的按鍵精靈,支持 Ubuntu、macOS、FreeBSD 等系統。

// 打字
xdotool type "HelloGitHub"
// 組合鍵
xdotool key ctrl+l
// 移動鼠標
xdotool mousemove x y
// 關閉窗口
xdotool selectwindow windowclose

C# 項目

4、DnsServer:一款適用於多平臺的 DNS 服務。它開箱即用無需配置,並提供了友好的 Web 界面和監控,支持 Docker 部署以及 Windows、Linux、macOS 和樹莓派操作系統。

5、Flow.Launcher:Windows 的快速文件和程序啓動器。這是一款可以讓你的工作流程更加絲滑的工具,相當於 Windows 上的 Alfred。它能夠快速啓動應用,方便地搜索文件、書籤等內容,支持擴展插件、預覽文件、系統命令、遊戲模式等功能。

6、Playnite:一款開源的電腦遊戲管理工具。支持同步 Steam、Epic、GOG、Battle.net 等平臺的遊戲,導入後該工具會自動從 IGDB 獲取遊戲信息,爲你的遊戲提供一個統一的界面。它的代碼完全開源保證了你的賬號安全,而且支持包括中文在內的多種語言,適用於 Windows7 及以上的操作系統。

C++ 項目

7、dragonfly:一款爲取代 Redis 而生的內存數據庫。它與當下最流行的兩款內存數據庫 Redis 和 Memcached 的 API 完全兼容,所以無需修改代碼即可完成遷移。性能上更是爆炸,官方表示單實例可支持數百萬量級的 QPS,而且吞吐量是 Redis 的 25 倍,並可以應對 TB 級別的內存數據集。

8、moonlight-qt:讓你可以在幾乎任何設備上玩 PC 遊戲的工具。該項目基於 NVIDIA GameStream 協議,通過串流的方式實現在 iOS、Android、電視等設備上玩電腦的 3A 大作。此過程手機無需下載和運行遊戲,只需接收遊戲畫面、反饋操作指令。雖然安裝過程有點複雜需要花些時間,但是爲了躺着玩 PC 遊戲一切都是值得的,感興趣的小夥伴折騰起來吧!

9、oceanbase:一款國產的原生分佈式數據庫。這是由螞蟻集團開源的一款基於 Paxos 協議和分佈式架構的企業級分佈式關係型數據庫。它同時支持 OLTP 和 OLAP 的混合負載,具有高可用、高性能、水平擴展、兼容 SQL 語法等特點。

10、rr:Linux 上的輕量級 C/C++ 調試工具。這是一款 Linux 上的輕量級調試 C/C++ 代碼的工具,支持錄製、重放和反向執行等操作,提供了一個可反覆調試的環境,大大提升了調試效率。

Go 項目

11、alist:一款支持多種存儲的文件列表程序。它支持一鍵安裝,能夠方便地聚合散落在各處的文件,輕鬆實現文件在線查看服務。支持包括本地存儲、阿里雲盤、百度網盤、OneDrive 、WebDAV 等多種存儲方式。

12、gorss:一款用 Go 編寫的命令行 RSS 閱讀器。它簡單易用隱蔽性強,支持預覽內容、瀏覽器打開鏈接、自定義快捷鍵、主題、單詞高亮等功能。

13、gosec:Go 語言源碼安全檢查工具。該項目通過掃描 Go 代碼的 AST 檢查源代碼是否存在安全問題,能夠發現源碼中硬編碼密碼、XSS 和 SQL 注入等問題。

14、skopeo:能夠管理遠程倉庫的容器鏡像的工具。它能夠查看遠程倉庫的容器鏡像信息,以及執行復制、同步、刪除等操作,支持 docker.io、quay.io、私有倉庫等。

$ skopeo inspect docker://registry.fedoraproject.org/fedora:latest
{
    ...
    "Architecture": "amd64",
    "Os": "linux",
    "Layers": [
        "sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0"
    ],
    "LayersData": [
        {
            "MIMEType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
            "Digest": "sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0",
            "Size": 71355009,
            "Annotations": null
        }
    ],
    "Env": [
        "DISTTAG=f37container",
        "FGC=f37",
        "container=oci"
    ]
}

15、yaegi:一款優雅的 Go 語言解釋器。它是一個純 Go、僅依賴標準庫實現的 Go 解釋器,擁有簡單易用的 API,完全支持 Go 編程語言規範,以及 Go 1.18 和 1.19 版本。

package main

import (
	"github.com/traefik/yaegi/interp"
	"github.com/traefik/yaegi/stdlib"
)

func main() {
	i := interp.New(interp.Options{})

	i.Use(stdlib.Symbols)

	_, err := i.Eval(`import "fmt"`)
	if err != nil {
		panic(err)
	}

	_, err = i.Eval(`fmt.Println("Hello Yaegi")`)
	if err != nil {
		panic(err)
	}
}

Java 項目

16、AndroidBitmapMonitor:Android 的圖片內存分析工具。它可以幫助開發者快速發現應用內加載的圖片是否合理,比如大小是否合適、緩存是否及時清理、是否加載了當前並不需要的圖片等等,支持在線下和線上使用。

17、frostmourne:汽車之家開源的監控平臺。採用 SpringBoot+MyBatis+XXL-JOB 構建的監控系統,支持接入 ES、HTTP、Prometheus、MySQL/TiDB 等多種數據源,以及釘釘、飛書、短信等多種報警消息發送方式。

JavaScript 項目

18、koishi:一款極易擴展的聊天機器人框架。它提供了便利的控制檯和插件市場,讓你無需編程基礎也可以開箱即用,幾分鐘內搭建出自己的聊天機器人,支持 QQ、Telegram、Discord、飛書等聊天平臺。

19、nginx-proxy-manager:一款強大的 Nginx 可視化管理平臺。它開箱即用支持 Docker 一鍵部署,可以讓用戶通過 Web 界面在線配置、管理 Nginx 服務,支持轉發、重定向、SSL 證書、高級配置等功能。

20、qinglong:支持多種腳本語言的定時任務管理平臺。這是一款定時執行腳本的平臺,提供了在線管理腳本、環境變量、查看日誌、秒級定時任務等功能,支持 Python3、JavaScript、shell 等腳本語言。

21、snk:“喫光”你所有的 GitHub 貢獻。它可以根據 GitHub 上的貢獻圖,自動生成蛇的行走路徑,一口氣喫光所有“綠塊”,支持生成 gif 或 svg 格式的動圖。

22、uptime-kuma:一款極簡的 uptime 監控工具。該項目可以用來監控服務正常運行時間,它界面美觀、支持 Docker 一鍵部署,提供了中文界面、通知、多狀態頁面等實用功能。

PHP 項目

23、dujiaoka:PHP 寫的開源自動售貨系統。採用 Laravel+Bootstrap 實現的自動售賣虛擬產品的平臺,比如兌換碼、賬號之類的數字商品,顧客付款後可以自動發貨,已集成微信、支付寶、Paypal 等多種支付方式。

Python 項目

24、bar_chart_race:基於 Python 的動態條形圖。通過該項目可以用 Python 創建條形圖比賽動畫,顯示數據排名的動態條形圖,直觀地展示數據變化過程。

25、dataset:爲懶人準備的操作數據庫的 Python 庫。它基於 SQLAlchemy 構建了一個簡單的數據層,可以讓查詢、寫入、更新數據庫中的數據,就像讀寫 JSON 文件一樣簡單,支持 SQLite、PostgreSQL 和 MySQL 數據庫。

import dataset

db = dataset.connect('sqlite:///:memory:')

table = db['sometable']
table.insert(dict(name='John Doe', age=37))
table.insert(dict(name='Jane Doe', age=34, gender='female'))

john = table.find_one(name='John Doe')

26、GreaterWMS:可商用的開源倉庫管理系統。該項目是採用福特亞太區售後物流倉儲供應鏈流程的倉庫系統,它提供了客戶管理、訂單管理、庫存管理、供應商管理、盤點等模塊,支持手機、電腦等多種設備。

27、secretflow:螞蟻開源的隱私計算框架。隱私計算即通過技術的手段實現數據在參與方可用不可見,讓數據在安全和不泄露隱私的情況下流通、開放。該項目採用 Python 語言編寫,支持包括 MPC、FL、TEE、HE、DP 在內的多種主流隱私計算技術。

28、shynet:極簡的網站分析平臺。這是一個基於 Django 構建的網站分析平臺,它很小、夠用、界面友好、不追蹤 cookie、支持多用戶,追蹤腳本不到 1KB。

Rust 項目

29、carbonyl:運行在終端裏的瀏覽器。這是一款基於 Chromium 的命令行瀏覽器,可以在終端裏用瀏覽器的方式訪問網頁,支持圖片、動圖、視頻、音頻等內容。

30、lsd:下一代 ls 命令。這個項目是用 Rust 重寫的類似 ls 命令的查看目錄清單的工具,同時增加了顏色、圖標等新功能,更加賞心悅目。

31、typst:比 LaTex 更好學的標記語言。這是一款新的基於標記語言的排版系統,它比知名的 LaTex 更加簡潔、更容易上手,輸出的公式也很漂亮,還可以更換各種字體。

Swift 項目

32、DevToysMac:macOS 上的程序員瑞士軍刀。該項目是 DevToys 的 macOS 版本,無需安裝下載解壓後即可使用。它同樣實現了程序員日常開發會用到的功能,比如時間戳轉化、Base64 編/解碼、JSON 格式化等。

33、wikipedia-ios:維基百科官方開源的 iOS 客戶端。維基百科是一本線上的百科全書,這是它的 iOS 客戶端,支持搜索資料、熱門文章、保存文章、多語言、夜間閱讀等功能。

其它

34、.tmux:一份好看且通用的 tmux 配置文件。Tmux 是一個終端複用器,該項目包含了一份可以讓 tmux 更漂亮、更好用的配置文件,以及詳細的安裝步驟。

35、ark-pixel-font:開源的泛中日韓像素字體。爲遊戲開發提供了一套可用於正文的像素字體,目前完成了 1 萬個左右的漢字(12px)。

36、bpf-developer-tutorial:從入門到進階的 eBPF 開發者教程。這是一個基於 libbpf 和 CO-RE(一次編譯,到處運行) 的 eBPF 教程,包括 eBPF 基本概念、代碼實例、實際應用等內容,通過 20 個 eBPF 的小工具,來幫助開發者快速上手 eBPF。

37、ENGAGE:自制無電池的 GameBoy。該項目實現了沒有電池、僅通過太陽能和遊戲操作供電的 GameBoy。它可正常運行俄羅斯方塊遊戲,遇到電量耗盡時能保存遊戲的當前進度,即重新啓動遊戲後,下落的方塊會處於同一位置。是不是聽起來很酷?這裏包含製作該設備所需的一切,感興趣的同學可以試一試。

38、GameDevMind:全面的遊戲開發技術圖譜。該項目用思維導圖的方式,展示了遊戲開發需要具備的能力,包含技術棧、方法、工具、流程、管理、運營等方面。

39、immersive-translate:沉浸式雙語網頁翻譯擴展。這是一個免費的翻譯插件,可以在保留原文的情況下顯示譯文,支持接入 10 多種翻譯服務,適用於 Chromium、Firefox、Safari 等瀏覽器。項目處於閉源開發的狀態,想要貢獻代碼的同學需要先申請。

開源書籍

40、PPHC:《高併發的哲學原理》。這本書討論的是 Web 服務高併發問題,內容由淺入深地介紹了 Apache、Nginx、epoll、交換機、k8s、數據庫、分佈式、微服務架構等解決高併發問題的技術和方案。

41、py_regular_expressions:《Python 正則表達式從入門到精通》。這本書包含數百個示例和練習,涵蓋了 Python 正則表達式從初級到高級的用法。

機器學習

42、Bringing-Old-Photos-Back-to-Life:通過深度學習修復老照片的工具。由微軟開源的深度學習項目,可用於修復破損的老照片,修復效果顯著。

43、ChatGLM-6B:清華 KEG 開源的雙語對話語言模型。這是一個基於 GLM 架構、具有 62 億參數的中英雙語對話語言模型,支持在單張 2080Ti 上進行推理使用。

>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好👋!我是人工智能助手 ChatGLM-6B,很高興見到你,歡迎問我任何問題。

44、DI-engine:OpenDILab 開源的決策 AI 平臺。這是一個基於 PyTorch 的通用決策智能引擎,爲開發者提供了 60+ 種算法、40+ 類型環境。支持各類定製化的訓練和實際決策智能應用,比如遊戲 AI、自動駕駛和生物序列預測等。

45、llama.cpp:在筆記本上運行 LLaMA 大模型。該項目實現了在 CPU 上流暢運行 LLaMA 模型,支持 macOS、Linux、Windows 操作系統。

最後

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

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

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

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