興趣是最好的老師,HelloGitHub 讓你對編程感興趣!
簡介
分享 GitHub 上有趣、入門級的開源項目。
這里有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種編程語言 Python、Java、Go、C/C++、Swift...讓你在短時間內感受到開源的魅力,對編程產生興趣!
感謝大家點亮的每一個 Star ✨
以下為本期內容|每個月 28 號更新
C 項目
1、cpufetch:獲取 CPU 信息的命令行工具
C# 項目
2、AduSkin:一款簡約漂亮的 WPF UI 庫
C++ 項目
3、simdjson:每秒可解析千兆字節的高性能 JSON 解析庫
4、filament:輕量級實時物理渲染引擎。能夠用來做游戲渲染引擎或者音視頻編輯工程,當你需要處理 3D 渲染效果,又不想引入龐大的游戲引擎時,可以考慮使用它尤其是 Android 平台
CSS 項目
5、devices.css:僅用 CSS 實現手機和平板設備的平面模型。機型包含 iPhone、Android、Lumia 和 iPad
<div class="marvel-device iphone-x">
<div class="notch">
<div class="camera"></div>
<div class="speaker"></div>
</div>
<div class="top-bar"></div>
<div class="sleep"></div>
<div class="bottom-bar"></div>
<div class="volume"></div>
<div class="overflow">
<div class="shadow shadow--tr"></div>
<div class="shadow shadow--tl"></div>
<div class="shadow shadow--br"></div>
<div class="shadow shadow--bl"></div>
</div>
<div class="inner-shadow"></div>
<div class="screen">
<!-- Content goes here -->
</div>
</div>
Go 項目
6、lindb:可水平拓展、高性能的分布式時序數據庫,支持海量數據存儲以及快速並行查詢和計算。已在餓了么內部使用,存儲了全量的監控數據。每天增量寫入 TB 量級,共計 PB 級的數據
7、learning_tools:作者學習 Go 過程中實踐的 Go 代碼集合。包含了 Go 語言實用三方庫、微服務、數據庫、算法等代碼片段,雖然內容豐富但缺少分類和梳理。就算這樣還是要推薦給尋找 Go 進階之路的小伙伴,因為內容真的很好
8、sharingan:基於 Go 的流量 錄制/回放 工具。實現在不影響線上服務的前提下,線下采用線上的真實請求和參數進行測試。特別適合線上重要服務重構后的回歸測試,真實流量的測試有助於提早發現問題,避免重大事故
9、gocron:基於 Go 語言實現的輕量級定時任務管理平台。功能:
- Web 管理界面
- 定時任務可精確到秒
- 任務失敗可重試,超時強制停止
- 賬戶權限控制
- 等等
10、sealos:一條命令即可快速部署 Kubernetes(k8s) 集群的工具
Java 項目
11、Android-skin-support:方便好用的 Android 換膚框架
@Override
public void onCreate() {
super.onCreate();
SkinCompatManager.withoutActivity(this) // 基礎控件換膚初始化
.addInflater(new SkinMaterialViewInflater()) // material design 控件換膚初始化[可選]
.addInflater(new SkinConstraintViewInflater()) // ConstraintLayout 控件換膚初始化[可選]
.addInflater(new SkinCardViewInflater()) // CardView v7 控件換膚初始化[可選]
.setSkinStatusBarColorEnable(false) // 關閉狀態欄換膚,默認打開[可選]
.setSkinWindowBackgroundEnable(false) // 關閉windowBackground換膚,默認打開[可選]
.loadSkin();
}
12、lettuce-core:線程安全的高級 Java Redis 客戶端。基於 Netty 實現了非阻塞 I/O,支持同步、異步、集群、哨兵、管道等功能
RedisClient redisClient = RedisClient.create("redis://localhost/0");
StatefulRedisConnection<String, String> connection = redisClient.connect();
System.out.println("Connected to Redis");
connection.sync().set("key", "Hello World");
connection.close();
redisClient.shutdown();
JavaScript 項目
13、didact:教你從零寫一個 React 框架。通過一系列的文章和代碼,教授如何實現 React 框架,從而能夠更好的理解 React 內部原理
15、milkdown:一款清爽見即所得的 Markdown 編輯器。不同於大多數 Markdown 編輯器它是插件驅動的,類似開源可自由擴展的 Typora。項目由 prosemirror+remark 構建,入門開發者從中可以學習到如何使用 prosemirror 來開發富文本編輯器,以及如何設計一個針對編輯器的插件系統
import { Editor } from '@milkdown/core';
import { commonmark } from '@milkdown/preset-commonmark';
import { history } from '@milkdown/plugin-history';
// import theme
import '@milkdown/theme-nord/lib/theme.css';
new Editor()
.use(commonmark)
.use(history)
.create();
16、flat:前后端完全開源、功能豐富的在線教室項目。通過它可以快速完成支持多人視頻、語音、白板互動、錄制回放等功能的在線教室
17、react-beautiful-dnd:漂亮易用的 React 列表拖拽庫
PHP 項目
18、icon-workshop:移動應用圖標生成工具。能夠一鍵生成多種尺寸的 iOS/Android 應用圖標和 APP 啟動圖
Python 項目
19、moviepy:用於處理視頻的 Python 庫,它支持視頻剪輯、自定義效果、視頻合成、格式轉化、插入文字等功能。專於注視頻但不局限於此,還支持處理音頻和 GIF 圖片。雖然現在視頻剪輯的工具很豐富,但如果要批量處理視頻,用 Python+moviepy 寫個腳本應該可以一勞永逸,節省時間
20、weiboSpider:Python 寫的微博爬蟲,命令行直接啟動。支持獲取微博用戶、內容字段豐富。雖然爬蟲的實戰項目很多,但能一直更新的很少,因為只要數據源變動爬蟲就要跟進迭代。這個項目更新穩定回復問題及時實屬不易,希望大家在享受項目帶來的便利同時也可以 Star 支持一下
# 安裝
$ git clone https://github.com/dataabc/weiboSpider.git
$ cd weiboSpider
$ pip install -r requirements.txt
# 啟動
$ python3 -m weibo_spider
21、pyinstrument:簡單易用的 Python 代碼性能分析庫,優化 Python 代碼的工具。支持 Python 3.7+ 能夠分析異步代碼,僅需一條命令即可顯示具體到函數的耗時,快速指出影響代碼性能的地方,幫助提高代碼性能讓你的代碼快人一步
# 命令模式
Usage: pyinstrument [options] scriptfile [arg] ...
# 代碼片段模式
from pyinstrument import Profiler
profiler = Profiler()
profiler.start()
# 要分析的代碼
profiler.stop()
profiler.print()
# 還支持 flask 等 Web 框架
22、termpair:瀏覽器遠程+實時操作命令行的工具。讓開發者安全實時的共享終端,特別適合服務器非桌面系統的環境。有了它下次再遇到問題,求助大佬遠程協助就方便多了
# 安裝
pip install termpair
# 起服務
termpair serve
# 生成遠程控制終端的鏈接
termpair share
23、ray:基於 Python 的分布式計算框架,采用動態圖計算模型。使用起來很方便可通過裝飾器的方式,僅需修改極少的的代碼,讓原本運行在單機的 Python 代碼輕松實現分布式計算。目前多用於機器學習方面
import ray
ray.init()
@ray.remote
def f(x):
return x * x
futures = [f.remote(i) for i in range(4)]
print(ray.get(futures))
Rust 項目
24、toydb:Rust 寫的分布式 SQL 數據庫實戰項目。作為一個學習項目並不適合於生產環境,但通過該項目你可以學習如何用 Rust 實現 Raft 協議、符合 ACID 的事物引擎、SQL 解析、數據持久化等。適合對數據庫底層運作原理感興趣的小伙伴
Swift 項目
25、FlappySwift:用 Swfit 寫的 Flappy Bird 游戲
26、NetNewsWire:適用於 macOS 和 iOS 的 RSS 閱讀器
其它
27、insomnia:基於 Electron 支持 GraphQL、REST、gRPC 的調試工具,請求網絡接口的桌面應用。不僅有簡約漂亮的界面,還支持 Windows、Linux、macOS 主流操作系統
28、keframe:Flutter 流暢度優化組件。通過分幀渲染解決由於構建導致的卡頓問題,適用於復雜列表或者頁面切換的場景
29、authpass:基於 Flutter 開發的適用於所有平台的密碼管理器。可通過 Dropbox 等雲服務同步數據,支持自動填充密碼
30、Unity3DTraining:Unity 游戲開發練習項目集合。包含仿寫泡泡龍、跑酷、切水果等游戲的源碼,還有作者收集的游戲效果源碼和相關文章
31、QASystemOnMedicalKG:從無到有搭建一個醫葯知識圖譜的開源項目。包含信息采集、清理、圖譜設計等,並基於圖譜實現了自動回答醫葯相關問題的服務
32、macos-virtualbox:幫你在 VirtualBox 上安裝 macOS 操作系統的工具。這個工具是一個 Bash 腳本,運行后只需要按回車即可完成安裝。目前已支持 Linux 、Windows、macOS 多個主流操作系統,可安裝 Catalina (10.15)、Mojave (10.14) 和 High Sierra (10.13) 等多個不同版本的蘋果系統
33、canvas-special:經典的 Canvas 實例集合。包括五子棋、坦克大戰、動態背景、動畫粒子特效等
34、brave-browser:快速、干凈、開源的網頁瀏覽器。由 JavaScript 的創造者布蘭登·艾克基於 Chromium 網頁瀏覽器和 Blink 排版引擎構建,擁有阻止網站追蹤的特點並且內置了廣告攔截器。支持 Android、Linux、macOS、iOS、Windows 操作系統,可一鍵導入書簽、瀏覽記錄、密碼、插件等,無負擔享受這片“凈土”
開源書籍
35、LearnOpenGL-CN:LearnOpenGL 教程的中文翻譯。OpenGL 是一個圖形 API,包含了一系列可以操作圖形、圖像的函數。它需要一個編程語言來工作,教程的示例代碼采用 C++ 編程語言。在線閱讀
36、Learn-Web-Hacking:Web 安全學習筆記,在線閱讀
機器學習
37、chineseocr_lite:輕量級中文 OCR 項目,提供將圖片上的中文轉成字符串的功能
38、ASRT_SpeechRecognition:基於深度學習的中文語音識別系統
如果你發現了 GitHub 上有趣的項目,就分享給大家伙吧。
以上就是本期的所有內容了,看完還不過癮?
關注 HelloGitHub 公眾號不僅可以收到第一時間的更新。點擊菜單欄->往期->月刊
往期月刊所有的內容盡收眼底一次看過癮!還有更多開源項目的介紹和寶藏項目等待你的發現。