《HelloGitHub》第94期

入門開源一起來 2024-01-27 18:12:01

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

簡介

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

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

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

C 項目

1、genann:C 語言寫的極簡神經網絡庫。這是一個輕量、無依賴、單文件的 C 語言神經網絡庫,內含豐富的示例和測試。代碼簡潔易讀,適合作爲初學者學習神經網絡的入門項目。

#include "genann.h"/* Not shown, loading your training and test data. */double **training_data_input, **training_data_output, **test_data_input;/* New network with 2 inputs, * 1 hidden layer of 3 neurons each, * and 2 outputs. */genann *ann = genann_init(2, 1, 3, 2);/* Learn on the training set. */for (i = 0; i < 300; ++i) { for (j = 0; j < 100; ++j) genann_train(ann, training_data_input[j], training_data_output[j], 0.1);}/* Run the network and see what it predicts. */double const *prediction = genann_run(ann, test_data_input[0]);printf("Output for the first test data point is: %f, %f\n", prediction[0], prediction[1]);genann_free(ann);

地址:github.com/codeplea/genann

C# 項目

2、FancyScrollView:Unity 滑動列表插件。該項目采用 Unity 引擎動畫系統來定制列表滑動效果,具備非常高的靈活性,除了用作滑動列表,還可以用作導航欄。項目代碼結構和風格規範,接入成本低、易于使用和定制。

using UnityEngine;using UnityEngine.UI;using FancyScrollView;class MyCell : FancyCell<ItemData>{ [SerializeField] Text message = default; public override void UpdateContent(ItemData itemData) { // 更新內容 message.text = itemData.Message; } public override void UpdatePosition(float position) { // position 是一個介于 0.0 到 1.0 之間的值 // 可以根據 position 自由控制滾動的外觀 }}

地址:github.com/setchi/FancyScrollView

3、MarkovJunior:基于馬爾可夫鏈的圖像生成器。馬爾可夫鏈是一種數學模型,具有“無記憶”的性質,即未來狀態的概率分布只依賴于當前狀態,而不依賴于過去的狀態。該項目利用馬爾可夫鏈原理,通過模擬圖像的狀態轉移來生成獨特的圖像,包括建築、迷宮等。

地址:github.com/mxgmn/MarkovJunior

C++ 項目

4、abseil-cpp:谷歌開源的 C++ 基礎庫。這是一個在 Google 內部被廣泛應用的 C++ 公共庫,它提供了一系列高質量、可靠、高效的基礎模塊,其中包括字符串處理、並發、時間、STL 容器、測試、日志等實用函數。

地址:github.com/abseil/abseil-cpp

5、gpupixel:高性能跨平台實時美顔濾鏡庫。這是一個用 C++11 編寫的高性能圖像和視頻處理庫,內置基于 GPU 的美顔特效濾鏡,效果可以達到商業級別水平。支持磨皮、美白、瘦臉、大眼等特效,適用于 iOS、macOS 和 Android 平台。

地址:github.com/pixpark/gpupixel

6、qtrvsim:面向教育的 RISC-V CPU 模擬器。這是一個采用 Qt 實現的 RISC-V CPU 模擬器,由捷克理工大學計算學院開發。

地址:github.com/cvut/qtrvsim

Go 項目

7、copilot-gpt4-service:將 Github Copilot 轉成 ChatGPT 的服務。該項目可以將 GitHub Copilot 轉換成 ChatGPT 的服務,爲什麽要這麽做呢?因爲如果你在 GitHub 上有一個開源項目,就有機會免費使用 Copilot,除此之外學生和老師在完成認證後也可以免費使用 Copilot,一番操作下來就等于白嫖 GPT-4。一定要按照推薦的方式部署,否則有封號風險,僅限自用。

地址:github.com/aaamoon/copilot-gpt4-service

8、goploy:容易上手的代碼發布平台。這是一個采用 Go + Vue.js 構建的 Web 部署平台,可一鍵部署、發布和回滾項目。支持基于角色的訪問控制、監控、秒級定時任務、Xterm、LDAP 等功能,提供了完整的安裝引導,即使是初學者也能輕松上手。

地址:github.com/zhenorzz/goploy

9、listmonk:開源的郵件列表和營銷平台。這是一個開箱即用的郵件營銷平台,可以幫助你管理郵件訂閱者、創建和發送郵件、分析營銷數據。可查看郵件閱讀率、鏈接點擊率等,支持自托管適用于個人和企業。

地址:github.com/knadh/listmonk

10、restic:一款強大的開源備份工具。該項目提供了簡單、快速、安全的開源備份解決方案。它無需繁瑣的配置,即可輕松完成備份和恢複操作。采用增量備份策略,備份數據經過加密和壓縮處理,保障數據安全且節省空間,支持靈活的存儲選擇,包括本地磁盤和雲存儲。可設置自動備份時間,確保數據得到定期的備份保護。

$ restic --repo /tmp/backup backup ~/workenter password for repository:scan [/home/user/work]scanned 764 directories, 1816 files in 0:00[0:29] 100.00% 54.732 MiB/s 1.582 GiB / 1.582 GiB 2580 / 2580 items 0 errors ETA 0:00duration: 0:29, 54.47MiB/ssnapshot 40dc1520 saved

地址:github.com/restic/restic

11、vfox:無憂應對多編程語言不同版本的工具。這是一款跨平台的通用版本管理工具,通過命令行快速安裝、切換編程語言的不同版本,並支持自定義源地址。相比于針對每種語言的獨立版本管理工具(如 nvm、fvm、gvm 等),這個項目讓開發者擺脫繁瑣的學習和記憶過程,只需一個工具、一條命令,輕松搞定多編程語言版本管理。

$ vfox cnode -> v20.10.0java -> v11.0.12

地址:github.com/version-fox/vfox

Java 項目

12、1brc:探索 Java 處理 10 億行文本的最快速度。這是一個有趣的 Java 編程挑戰,要求開發者編寫一個 Java 程序,讀取包含多個氣象站溫度值的文件(10 億行),然後計算每個氣象站的最小、平均和最大值,最後按照站點名稱排序後輸出,現在最快速度爲 2 秒。

地址:github.com/gunnarmorling/1brc

13、automq-for-kafka:一款真正的雲原生 Kafka 解決方案。該項目是基于雲原生重新設計的新一代 Kafka 發行版。在保持和 Apache Kafka 100%兼容前提下,AutoMQ 可以爲用戶提供高達 10 倍的成本優勢以及百倍的彈性優勢,同時支持秒級分區遷移和流量自動重平衡,解決運維痛點。

地址:github.com/AutoMQ/automq-for-kafka

14、spring-startup-analyzer:優化 Spring Boot 應用啓動性能的工具。該項目利用采集 Spring 應用啓動過程數據,生成交互式分析報告,爲開發者提供了分析 Spring 應用啓動性能的工具。其主要功能包括分析啓動卡點、處理 Spring Bean 異步初始化,以及顯示應用未加載的 jar 包、方法調用次數和耗時統計等詳細信息。

地址:github.com/linyimin0812/spring-startup-analyzer

JavaScript 項目

15、awesome-hands-control:用手勢操控電腦程序的工具。該項目基于手勢識別進行自定義操控電腦程序,采用純前端技術棧實現。它通過訓練好的模型(MediaPipe)來識別手勢,然後將特定手勢與電腦操控綁定,最後,用戶可以指定操作的進程,從而實現手勢操控電腦程序。

地址:github.com/RylanBot/awesome-hands-control

16、bpmn-js:專注于流程圖的可視化和編輯組件。該項目提供了直觀的拖拽式創建和編輯流程圖的功能,可用于構建業務流程管理、決策流可視化和低代碼平台。

const xml = '...'; // my BPMN 2.0 xmlconst viewer = new BpmnJS({ container: 'body'});try { const { warnings } = await viewer.importXML(xml); console.log('rendered');} catch (err) { console.log('error rendering', err);}

地址:github.com/bpmn-io/bpmn-js

17、dockge:一個美觀、易用的 Docker Compose 管理平台。該項目提供了一個 Web 界面,用于管理 docker-compose.yaml 文件。它開箱即用、界面設計精美,支持交互式編輯 compose.yaml 文件、更新 docker 鏡像,以及啓動、停止、重啓、刪除 docker 等操作。

地址:github.com/louislam/dockge

18、theatre:一個用于創建 Web 動畫的 JavaScript 庫。該項目是帶圖形用戶界面的 Web 動畫編輯器,能對任何 JavaScript 變量進行動畫處理。它不僅支持處理 three.js 或其他 3D 庫對象的動畫功能,還能利用 React 等庫對 HTML/SVG 進行動畫處理。

地址:github.com/theatre-js/theatre

19、tiny-rdm:一款輕量級的跨平台 Redis 桌面客戶端。該項目是基于 WebView2 的 Redis 桌面客戶端,擁有小巧的體積和精美的界面,同時支持中文。它提供了多種連接方式、分段加載、慢日志、轉碼顯示等功能,可以在 Windows、Linux 和 macOS 系統上使用。

地址:github.com/tiny-craft/tiny-rdm

Kotlin 項目

20、jingmo:一款古詩詞文和成語應用。它叫「京墨」是一個免費的 Android 閱讀應用,內含豐富的中國傳統文化內容,包括古詩、歇後語、成語故事、中國傳統節日、繞口令等。安裝應用第一次進入無內容,需要在設置裏手動同步數據。

地址:github.com/hefengbao/jingmo

Objective-C 項目

21、Itsycal:可愛的 Mac 菜單欄日曆。這是一個迷你的菜單欄,擁有可愛的界面和實用的功能,支持顯示/添加系統日曆的事件、深色模式、周數、快捷鍵等功能,適用于 macOS 11+ 系統。

地址:github.com/sfsam/Itsycal

22、KeepingYouAwake:防止 Mac 進入睡眠狀態的工具。這一個小型的菜單欄實用工具,可以讓 Mac 電腦在預設的時間內或永久不進入睡眠模式,適用于 macOS 10.13 或更高版本。

地址:github.com/newmarcel/KeepingYouAwake

PHP 項目

23、akaunting:專爲小型企業和個人設計的在線會計軟件。該項目是基于 Laravel+Vue.js+Tailwind CSS+MySQL 構建的會計平台,爲用戶提供全面的會計和財務功能。其中包括費用跟蹤、現金流、報告等,並且支持移動端適配和多語言。

地址:github.com/akaunting/akaunting

Python 項目

24、DouyinLiveRecorder:一款支持多平台的直播錄制工具。該項目是基于 FFmpeg 實現的多平台直播源錄制工具,支持循環執行直播錄制任務(循環值守)、直播狀態推送、多人錄制、去水印、選擇畫質等功能。

地址:github.com/ihmily/DouyinLiveRecorder

25、harlequin:一個簡單、快速、美觀的終端數據庫客戶端。這是一個帶界面的命令行數據庫客戶端,提供了數據庫和表目錄、查詢編輯器、顯示結果、導出數據的功能,支持 DuckDB、SQLite、Postgres、MySQL 等數據庫。

地址:github.com/tconbeer/harlequin

26、khal:一款簡單、美觀的終端日曆。該項目是用 Python 寫的命令行日曆工具,支持快速便捷地浏覽、添加和編輯事件,以及同步日曆數據。

地址:github.com/pimutils/khal

27、pyupgrade:一鍵升級 Python 代碼的工具。這是一個用于自動升級 Python 代碼,以適應新版本語法的工具。支持升級到不同的 Python 版本、提供預覽模式即查看改動變化等功能。

地址:github.com/asottile/pyupgrade

28、text_blind_watermark:給文本加盲水印的 Python 庫。通過該項目可以將一段隱秘信息嵌入到明文中,嵌入前後的明文無變化。簡單說就是給文本打上隱藏水印,適合在版權保護、數據泄漏溯源、數據安全等場景使用,支持 macOS 的 Chrome 浏覽器、蘋果備忘錄、macOS/iPhone 的微信和釘釘等應用。

from text_blind_watermark import TextBlindWatermark2password = 'HelloGitHub'text = '這句話中有盲水印,你能提取出來嗎?'watermark = 'HelloGitHub'text_blind_wm = TextBlindWatermark2(password=password)text_with_wm = text_blind_wm.embed(text=text, watermark=watermark)print(text_with_wm)

地址:github.com/guofei9987/text_blind_watermark

Rust 項目

29、cmd-wrapped:一個 Rust 編寫的命令行曆史記錄分析工具。這是一款命令行工具,它可以讀取你的命令行操作曆史記錄,並生成詳細的分析報告。報告包括過去任意一年的命令行活躍時段、常用命令等信息,支持 Zsh、Bash、fish 等。

地址:github.com/YiNNx/cmd-wrapped

其它

30、gdb-dashboard:GDB 可視化調試界面。這是專爲 GUN 調試器(GDB)設計的文本界面,支持模塊化顯示調試的程序相關信息,更直觀和方便地調試代碼。該界面采用 Python 編寫,具備輕松自定義和擴展的特性。

地址:github.com/cyrus-and/gdb-dashboard

31、kubernetes-network-policy-recipes:只需複制粘貼即可解決 K8s 網絡問題的配方。該項目包含了 Kubernetes 網絡策略的各種用例和示例 YAML 文件,可直接複制使用。

地址:github.com/ahmetb/kubernetes-network-policy-recipes

32、network_proxy_flutter:支持手機端的免費抓包工具。該項目是采用 Flutter 開發的抓包工具,可用于攔截、檢查和重寫 HTTP(S) 流量。它支持掃碼連接、域名過濾、請求重寫等功能,適用于 Windows、macOS、Linux、Android 和 iOS 平台。

地址:github.com/wanghongenpin/network_proxy_flutter

33、particle-life:粒子生命演化遊戲。該項目通過定義粒子之間的相互作用力,從而生成複雜的自組織圖案。源碼十分簡單,用戶可以在線試玩,創造出各種有趣的圖案。

地址:github.com/hunar4321/particle-life

34、vimwiki:Vim 中的個人 wiki。這是一個 Vim 插件,通過以 wiki 的方式連接文本,提供更好的組織筆記和想法的功能。

地址:github.com/vimwiki/vimwiki

開源書籍

35、game-programming-patterns:《遊戲編程模式》。該書收集了經過驗證、已發布的 3A 級遊戲中的經驗和模式,來解決你在遊戲開發中遇到的問題。

地址:github.com/munificent/game-programming-patterns

36、PDF-Explained:《PDF 解析》。該項目是《PDF Explained》一書的非官方中文翻譯版,內容由淺入深介紹了如何構建簡單的 PDF 文件,以及 PDF 運算符、書簽、超鏈接、注釋、加密等高級特性。

地址:github.com/zxyle/PDF-Explained

機器學習

37、AnimateDiff:讓 AI 生成的圖動起來。這是一款可以在 Stable Diffusion 中制作動圖的庫,支持將大多數開源模型轉換爲動畫生成器。讓原本通過文字生成的圖片,變成 gif 圖片動起來。

地址:github.com/guoyww/AnimateDiff

38、AnyText:輕松 DIY 圖片文字,定制你的創意設計。該項目提供了文字生成和文字編輯兩種模式,它能夠根據提示詞生成圖文融合的圖片,並確保文字的准確性,還支持對上傳圖片中的文字進行編輯後,重新生成圖片。支持中文、英語、日語、韓語等多語言,適用于海報設計、Logo 設計、創意塗鴉、表情包等場景。

地址:github.com/tyxsspa/AnyText

39、pyvideotrans:開源的視頻翻譯和配音工具。該項目可以將視頻從一種語言翻譯成指定語言的視頻,並自動生成和添加對應語言的字幕和配音。

地址:github.com/jianchang512/pyvideotrans

40、StreamDiffusion:實時交互式 AIGC 圖片。該項目能以驚人的速度生成 AIGC 圖像,單張 RTX4090 顯卡可達 100 張/秒。它通過流批處理簡化數據處理,采用殘差無分類器(RCFG)減少計算冗余,隨機相似性過濾器提高 GPU 利用率,並通過優化 IO 隊列實現並行處理。同時,利用多種模型加速工具,實現爆炸式地提升 AIGC 圖像速度。

地址:github.com/cumulo-autumn/StreamDiffusion

最後

感謝參與分享開源項目的小夥伴們,歡迎更多的開源愛好者來 HelloGitHub 自薦/推薦開源項目。

本期有你感興趣的開源項目嗎?如果有的話就留言告訴我吧~你們的支持是我更新的動力❤️

- END -

0 阅读:5

入門開源一起來

簡介:感謝大家的關注