早產的《HelloGitHub》第 65 期

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

簡介

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

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

項目地址://github.com/521xueweihan/HelloGitHub

感謝大家點亮的每一個 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 內部原理

14、iDataV:大屏數據可視化項目集合。在線查看

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 //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 寫的憤怒小鳥遊戲

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 公眾號不僅可以收到第一時間的更新。點擊菜單欄->往期->月刊

往期月刊所有的內容盡收眼底一次看過癮!還有更多開源項目的介紹和寶藏項目等待你的發現。