興趣是最好的老師,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 公眾號不僅可以收到第一時間的更新。點選選單欄->往期->月刊
往期月刊所有的內容盡收眼底一次看過癮!還有更多開源專案的介紹和寶藏專案等待你的發現。