close

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

簡介

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

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

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

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

C 項目

1、gb-studio:簡單好玩的 Game Boy 遊戲製作工具。這是一款可視化遊戲構建工具。無需編程基礎即可通過拖拽的方式,快速製作出復古風格的 Game Boy 遊戲。不僅支持導出遊戲 ROM,還可以直接構建成在線遊戲。

地址:https://github.com/chrismaltby/gb-studio

2、jq:輕快的命令行 JSON 處理器。JSON 作為最常見的序列化格式,日常開發中經常會遇到。這個項目可以通過簡單的命令對 JSON 數據進行格式化、過濾等操作,還支持直接解析接口的 JSON 數據,十分靈活和方便。

地址:https://github.com/stedolan/jq

3、libvips:極快的多線程圖像處理庫。具有占用內存小、處理速度快等特點的圖像處理底層庫。它能夠處理多種圖像和像素格式,為了使用方便不僅支持命令行調用,官方還提供了 Ruby、Python 等多種編程語言的 SDK。

地址:https://github.com/libvips/libvips

C# 項目

4、CrazyCar:一款用 Unity 製作的聯機賽車遊戲。這是一套完整的網絡聯機遊戲解決方案,項目包含遊戲端、服務器端、網絡傳輸和管理後台。遊戲支持計時賽、多人比賽、個人成就、資源熱更等特性,可以運行在 iOS/Android/Windows 設備上。

地址:https://github.com/TastSong/CrazyCar

5、Masuit.Tools:C# 開發工具箱。該庫包含了 C# 日常開發常用的操作類,比如字符串處理、進制轉換、日期處理、加密/解密、文件壓縮、圖像裁剪、斷點續傳、分布式 ID 等。

doublemilliseconds=DateTime.Now.GetTotalMilliseconds();//獲取毫秒級時間戳doublemicroseconds=DateTime.Now.GetTotalMicroseconds();//獲取微秒級時間戳doublenanoseconds=DateTime.Now.GetTotalNanoseconds();//獲取納秒級時間戳doubleseconds=DateTime.Now.GetTotalSeconds();//獲取秒級時間戳doubleminutes=DateTime.Now.GetTotalMinutes();//獲取分鐘級時間戳

地址:https://github.com/ldqk/Masuit.Tools

C++ 項目

6、imgui:遊戲行業內流行的輕量級 C++ 圖形界面庫。這是個即時模式的 GUI 框架,控件都需要手繪。優點是更加靈活和輕量,可以快速構建功能簡單、體積小的 GUI 程序,但不適合用來實現複雜動畫的 GUI 應用,多用於開發遊戲內的 GUI 工具。

ImGui::Text("Hello,world%d",123);if(ImGui::Button("Save"))MySaveFunction();ImGui::InputText("string",buf,IM_ARRAYSIZE(buf));ImGui::SliderFloat("float",&f,0.0f,1.0f);

地址:https://github.com/ocornut/imgui

7、flatbuffers:谷歌開源的高性能序列化庫。類似 Protocol Buffers 的序列化格式,但解析速度更快、占用內存更少,多用於對解析耗時敏感的 Android 應用和遊戲。

地址:https://github.com/google/flatbuffers

8、CppCoreGuidelines:C++ 核心指南。一份由 C++ 之父 Bjarne Stroustrup 領導的 C++ 編碼指南,目的是為了幫助大家更好地使用現代 C++。這個項目主要討論的是關於 C++ 編寫接口、內存管理、並發等方面的問題,適合有一定 C++ 基礎想要進階的小夥伴。

地址:https://github.com/isocpp/CppCoreGuidelines

CSS 項目

9、core:CSS 按鈕樣式集合。該項目實現了 100 種不同樣式的按鈕。

地址:https://github.com/ui-buttons/core

10、css-protips:CSS 專業技巧。一個幫你提升 CSS 技巧的收藏集。

地址:https://github.com/AllThingsSmitty/css-protips

Go 項目

11、wechat-backup:本地備份微信聊天記錄的工具。它能夠將手機上的微信聊天記錄,解密後保存在電腦上,支持查看、搜索、恢復微信聊天記錄。

地址:https://github.com/greycodee/wechat-backup

12、ptg:用 Go 寫的 GUI gRPC 客戶端。作者在調試 gPRC 接口時,發現沒有類似 postman 趁手的 gPRC 客戶端,所以就自己動手寫了一個然後開源了。

地址:https://github.com/crossoverJie/ptg

13、wild-workouts-go-ddd-example:Go DDD 示例項目。該項目通過一個預約系統的示例,展示了如何在 Go 項目中實現領域驅動設計(DDD)和讀寫分離架構(CQRS)。

地址:https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example

14、gitleaks:一款靜態應用程序安全測試(SAST)工具。它可以檢測項目中是否包含密碼、API Key、token 等信息,還能夠輕鬆整合到 Git Hook 和 GitHub Action,實現提交代碼時自動檢測,通過告警和阻止 push 等方式,有效地防止敏感信息泄漏。

地址:https://github.com/zricethezav/gitleaks

15、mercure:一種用於實時通信的開放式協議。該項目是基於 HTTP 和 SSE 的一種協議,然後用 Go 語言實現的實時推送服務。相較於 WebSocket 協議它使用起來更加簡單,客戶端發起訂閱就和請求普通的 HTTP 接口一樣,而且在 HTTP/2 下還可以雙向通信。

地址:https://github.com/dunglas/mercure

Java 項目

16、picocli:構建 Java 命令行應用的框架。簡單易用寥寥幾行代碼,就可以完成一個 Java 命令行應用程序。雖然由 Java 編寫但可以在 Groovy、Kotlin、Scala 中使用,支持命令自動補全、顏色、子命令、幫助信息等功能。

importpicocli.CommandLine;importpicocli.CommandLine.Option;importpicocli.CommandLine.Parameters;importjava.io.File;@Command(name="example",mixinStandardHelpOptions=true,version="Picocliexample4.0")publicclassExampleimplementsRunnable{@Option(names={"-v","--verbose"},description="Verbosemode.Helpfulfortroubleshooting.Multiple-voptionsincreasetheverbosity.")privateboolean[]verbose=newboolean[0];@Parameters(arity="1..*",paramLabel="FILE",description="File(s)toprocess.")privateFile[]inputFiles;publicvoidrun(){if(verbose.length>0){System.out.println(inputFiles.length+"filestoprocess...");}if(verbose.length>1){for(Filef:inputFiles){System.out.println(f.getAbsolutePath());}}}publicstaticvoidmain(String[]args){//ByimplementingRunnableorCallable,parsing,errorhandlingandhandlinguser//requestsforusagehelporversionhelpcanbedonewithonelineofcode.intexitCode=newCommandLine(newExample()).execute(args);System.exit(exitCode);}}

地址:https://github.com/remkop/picocli

17、liteflow:輕快、穩定可編排的規則引擎。規則引擎能夠幫助系統解耦,實現通過修改規則就可以適應複雜多變的業務邏輯。這是一個功能強大的 Java 規則引擎,支持同步異步混編、平滑熱刷新,無需重啟應用即可讓新規則生效,規則語法簡單、文檔通俗易懂,學習門檻低容易上手。

地址:https://github.com/dromara/liteflow

18、forest:極簡的聲明式 Java HTTP 客戶端。一個開源的 Java HTTP 客戶端框架,採用聲明式的開發方式,分分鐘即可完成 HTTP 請求的定義、發送、接收、解析、錯誤處理、日誌打印等操作。

publicinterfaceAmapClient{/***@Get註解代表該方法專做GET請求*在url中的{0}代表引用第一個參數,{1}引用第二個參數*/@Get("http://ditu.amap.com/service/regeo?longitude={0}&latitude={1}")MapgetLocation(Stringlongitude,Stringlatitude);}//注入接口實例@AutowiredprivateAmapClientamapClient;...//調用接口Mapresult=amapClient.getLocation("121.475078","31.223577");System.out.println(result);

地址:https://github.com/dromara/forest

JavaScript 項目

19、regex-vis:在線可視化正則編輯器。該項目可將輸入的正則表達式,自動生成對應的可視化圖形,支持通過編輯圖形節點修改正則表達式,以及對正則表達式進行測試等功能。

地址:https://github.com/Bowen7/regex-vis

20、vxe-table:好用的 Vue 表格組件。支持增刪改查、虛擬列表、大數據懶加載、數據校驗、分頁、彈窗等功能的 Vue 表格組件。

地址:https://github.com/x-extends/vxe-table

21、wangEditor:一款開源的 Web 富文本編輯器。基於 slate.js 和 snabbdom.js 實現的富文本編輯器,支持 JS、Vue 和 React 框架。開箱即用僅需幾行代碼,就能實現一個功能齊全的富文本編輯器。

import'@wangeditor/editor/dist/css/style.css'import{createEditor,createToolbar}from'@wangeditor/editor'//創建編輯器consteditor=createEditor({selector:'#editor-container'})//創建工具欄consttoolbar=createToolbar({editor,selector:'#toolbar-container'})

地址:https://github.com/wangeditor-team/wangEditor

22、mjml:能夠快速製作出響應式郵件的框架。郵件樣式是一個讓人頭疼的問題,而通過這個項目製作的郵件,可以正常地顯示在不同的郵件客戶端。它還提供了在線編輯器,以及多種郵件模版和豐富的組件,能夠幫你快速製作出精美、移動端優先、響應式的郵件。

地址:https://github.com/mjmlio/mjml

23、naive-ui:僅支持 Vue3 的組件庫。擁有完善的 TypeScript 類型推導的 Vue3 組件庫,擁有 80 多種組件、中文文檔,如果你想換換「口味」可以試試它。

地址:https://github.com/TuSimple/naive-ui

Kotlin 項目

24、typing-learner:可通過視頻生成單詞本的背單詞應用。該項目可將 MKV 格式的英文視頻製作成單詞庫,在記憶單詞時可通過台詞和播放視頻片段,讓每個單詞都有語境,幫助理解和記憶英文單詞。

地址:https://github.com/tangshimin/typing-learner

Objective-C 項目

25、lemon-cleaner:蘋果電腦專屬的清理工具。騰訊開源的免費 macOS 設備空間清理工具「檸檬清理」,支持深度清理、刪除重複文件、卸載應用、狀態欄顯示等功能,能夠一鍵輕鬆清理垃圾釋放空間。

地址:https://github.com/Tencent/lemon-cleaner

PHP 項目

26、course-tencent-cloud:PHP 寫的網課平台。依託騰訊雲基礎服務架構,採用 Phalcon 框架開發的網課系統,支持付費、點播、直播、專欄、問答、會員、秒殺等功能。

地址:https://github.com/xiaochong0302/course-tencent-cloud

Python 項目

27、diagrams:用 Python 代碼圖解系統架構。程序員在做技術方案的時候,系統架構圖是必不可少的。該項目將繪製架構圖時所需的圖標,封裝成了對應的類極易調用,文檔還提供了豐富的示例,讓你分分鐘就能上手,輕鬆用 Python 快速繪製出一份精美且清晰的架構圖,這樣不僅能省去拖拽調整連線的步驟,而且代碼還可以復用,以便應對不斷迭代升級的架構。

withDiagram("AdvancedWebServicewithOn-Premise",show=False):ingress=Nginx("ingress")metrics=Prometheus("metric")metrics<<Grafana("monitoring")withCluster("ServiceCluster"):grpcsvc=[Server("grpc1"),Server("grpc2"),Server("grpc3")]withCluster("SessionsHA"):primary=Redis("session")primary-Redis("replica")<<metricsgrpcsvc>>primarywithCluster("DatabaseHA"):primary=PostgreSQL("users")primary-PostgreSQL("replica")<<metricsgrpcsvc>>primaryaggregator=Fluentd("logging")aggregator>>Kafka("stream")>>Spark("analytics")ingress>>grpcsvc>>aggregator

地址:https://github.com/mingrammer/diagrams

28、orange3:互動式數據分析桌面工具。一款面向不會編程人群的數據挖掘和數據可視化工具箱。內置多種圖表類型、支持可視化編程,無需寫代碼即可做出簡單、實用的數據分析軟件,多用於教學和實驗室等場景。

地址:https://github.com/biolab/orange3

29、MechanicalSoup:自動與網站交互的輕量級 Python 庫。我們寫爬蟲一般是請求+解析兩步走,該項目將 Requests(請求) 和 BeautifulSoup(解析) 兩大 Python 爬蟲常用庫,封裝成一個瀏覽器對象(StatefulBrowser),將上面說的兩步並成一步。後面僅需一個瀏覽器對象,就可以完成請求頁面、過濾內容、提交表單、跳轉地址等操作,使得代碼更加簡單、操作更加方便。又因為它不依賴瀏覽器進程,所以相較於 Selenium 它更加輕巧,但缺點是不支持 JS 動態渲染的頁面。

importreimportmechanicalsoup#ConnecttoGooglebrowser=mechanicalsoup.StatefulBrowser()browser.open("https://www.google.com/")#Fill-intheformbrowser.select_form('form[action="/search"]')browser["q"]="MechanicalSoup"#Note:thebuttonnameisbtnKinthecontentservedtoactual#browsers,butbtnGforbots.browser.submit_selected(btnName="btnG")#Displaylinksforlinkinbrowser.links():target=link.attrs['href']#Filter-outunrelatedlinksandextractactualURLfromGoogle's#click-tracking.if(target.startswith('/url?')andnottarget.startswith("/url?q=http://webcache.googleusercontent.com")):target=re.sub(r"^/url\?q=([^&]*)&.*",r"\1",target)print(target)

地址:https://github.com/MechanicalSoup/MechanicalSoup

30、pandas-profiling:能夠自動生成 pandas DataFrame 分析報告的庫。雖然 pandas 自帶的 df.describe 函數可以方便地生成統計報告,但是信息較少。該項目能夠自動生成一份 df 多維度的 HTML 分析報告,包含列的類型、缺失情況、數值分布、行重複率、占用內存大小等信息,有助於更好地了解數據情況。

地址:https://github.com/ydataai/pandas-profiling

31、labelImg:圖形化界面的圖像標註工具。用 Python 和 Qt 編寫的圖像標註桌面應用,簡單方便下載就能用,適用於 Windows、Linux、macOS。標註數據支持 PASCAL VOC 格式的 XML 文件和 YOLO 的 txt 文件。

地址:https://github.com/heartexlabs/labelImg

Rust 項目

32、pueue:命令行任務管理工具。一個處理 shell 命令隊列的工具,支持後台執行、定時執行、任務並行、暫停任務、任務崩潰恢復等功能。但它只是一個命令行工具,不能當作任務隊列來用。

地址:https://github.com/Nukesor/pueue

Swift 項目

33、MiaoYan:一款 macOS 上的 Markdown 編輯器。採用 Swift5 原生開發,適用於 macOS 的 Markdown 編輯器「妙言」。界面清爽好看,支持 PPT 模式、語法高亮、黑暗模式等功能。

地址:https://github.com/tw93/MiaoYan

其它

34、LxgwWenKai:適合正文閱讀的開源中文字體。它是基於 FONTWORKS 出品的 Klee One 字體衍生品,並且針對簡體中文做了增補和優化,字體效果驚艷、完全免費且支持商用。

地址:https://github.com/lxgw/LxgwWenKai

35、MaaAssistantArknights:明日方舟遊戲助手。基於圖像識別技術,實現一鍵完成明日方舟遊戲的全部日常任務。

地址:https://github.com/MaaAssistantArknights/MaaAssistantArknights

36、opensnitch:一個 Linux 應用防火牆。它能夠監視和控制應用的網絡活動,相當於 Linux 版的 Little Snitch。

地址:https://github.com/evilsocket/opensnitch

37、Publii:帶 GUI 的靜態網站生成工具。一款本地的靜態網站 CMS 工具,有了它無需編程基礎,即可通過圖形化界面,輕鬆地創建個人博客、企業官網等,還支持一鍵發布到 GitHub Page、GitLab、Netlify 等網站。

地址:https://github.com/GetPublii/Publii

38、functional-programming-jargon:函數式編程世界的行話。該項目希望通過介紹函數編程中的術語,讓學習函數式編程變得容易些,示例代碼均採用 JavaScript 編寫。

地址:https://github.com/hemanth/functional-programming-jargon

開源書籍

39、dive-into-webpack:《深入淺出 Webpack》。一本系統講解 Webpack 的書,內容涵蓋了 Webpack 的入門、配置、實戰、優化以及原理。

地址:https://github.com/gwuhaolin/dive-into-webpack

40、interviews.ai:《深度學習面試》。書中包含了數百個人工智能領域面試時會遇到的問題(PRB)和解答(SOL),作者希望可以藉此幫助研究生/求職者,通過機器學習方面的面試。

地址:https://github.com/BoltzmannEntropy/interviews.ai

機器學習

41、flair:簡單易用的 NLP 框架。基於 PyTorch 的 NLP 框架,支持文本命名實體識別(NER)、詞性標註(PoS)、詞義消歧和分類。項目中包含詳細的使用教程,介紹了如何標記文本、訓練語言模型等。

fromflair.dataimportSentencefromflair.modelsimportSequenceTagger#makeasentencesentence=Sentence('IloveBerlin.')#loadtheNERtaggertagger=SequenceTagger.load('ner')#runNERoversentencetagger.predict(sentence)

地址:https://github.com/flairNLP/flair

42、paper-reading:深度學習論文精讀集合。李沐發起的深度學習領域經典、最新論文精讀視頻集合。

地址:https://github.com/mli/paper-reading

43、paper2gui:面向非編程人員的 AI 應用工具箱。該項目提供了多款免安裝下載即用的 AI 工具,功能涵蓋語音合成、視頻補幀、圖像風格轉化、目標檢測、OCR 識別等方面,讓編程小白也能輕鬆擁有 AI 「魔法」。

地址:https://github.com/Baiyuetribe/paper2gui

最後

以上就是本期的所有內容,還沒看過癮?點擊閱讀往期內容。

找開源項目就用:HelloGitHub小程序,如果安裝或運行開源項目遇到問題,就看這篇文章吧!

如果您覺得本期內容還不錯的話求贊、求分享,有了您的支持HelloGitHub 一定會變得更好!❤️

- END -


👆 關注「HelloGitHub」收到第一時間的更新👆

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()