早產的《HelloGitHub》第 65 期

HelloGitHub發表於2021-08-27

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

簡介

分享 GitHub 上有趣、入門級的開源專案。

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

專案地址:https://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 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 公眾號不僅可以收到第一時間的更新。點選選單欄->往期->月刊

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

相關文章