《HelloGitHub》第 67 期

削微寒發表於2021-10-28

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

簡介

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

https://github.com/521xueweihan/HelloGitHub

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


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

C 專案

1、bytehound:更強大的 Linux 記憶體分析工具。它能夠顯示記憶體變化曲線、佔用詳情、完整的堆疊記錄等資訊,有助於解決內容洩漏等問題

2、nnn:幾乎不需要配置就能用的終端檔案管理工具。它執行僅需極少的記憶體但功能卻不少,支援檔案實時預覽、搜尋、批量操作檔案、排序等,不僅如此它還能作為外掛整合進 Vim

C# 專案

3、ShareX:免費的 Windows 截圖錄製工具。功能強大支援全屏截圖、滾動截圖、檢測視窗截圖、GIF 錄製等,截圖後還支援在圖片上增加文字、水印、特效、馬賽克等,最後可直接上傳圖床得到連結,絲滑地完成整個截圖流程

C++ 專案

4、NanaZip:基於 7-Zip 的開源壓縮工具。包含多種壓縮演算法和美觀的 Win11 風格 UI,同時適配 Win11 右鍵選單操作

5、nvui:跨平臺現代的 Neovim 前端。它使用起來流暢,動畫效果細膩、美觀,你可以用 Neovim 和 nvui 自由定製出一個高顏值、最懂你的編輯器

CSS 專案

6、You-Dont-Need-JavaScript:看似需要 JavaScript 實現的效果,其實僅用到了 CSS 的示例集合。該專案學習意義大於實用價值,更多的時候是為了讓你知道原來 CSS 還能這麼用

7、weather-icons:天氣主題圖示和 CSS 檔案。包含 220+ 個高質量的天氣圖示

Go 專案

8、gopay: Go 的集合支付庫。支援微信、支付寶、PayPal、QQ 支付

9、remark42:簡單輕量級的評論引擎。任何需要評論的頁面,都可以通過 remark42 快速實現評論功能。功能豐富包括登陸、多層巢狀回覆、刪除評論、投票、禁止使用者評論、圖片上傳等功能

10、rpcx:國內大佬開源的 Go 語言 RPC 框架。框架入門輕鬆能夠快速上手,效能優於 grpc-go 而且眾多國內大廠都在用

Java 專案

11、shattered-pixel-dungeon:開源的畫素風 RougeLike 角色扮演遊戲,耐玩且支援中文。遊戲雖然畫面懷舊但內容豐富,可選戰士、法師、射手、盜賊四種角色,超過 150 種道具玩法多樣。每場探險都不一樣,每次開局都是隨機生成關卡和敵人。遊戲看似簡單但上手有難度,想要通關需要花些時間研究。支援 PC、安卓和 iOS 客戶端,下載地址

12、uncle-novel:一款電腦端小說閱讀軟體。該軟體不僅支援本地匯入小說,自動解析生成目錄方便閱讀。還支援全網搜尋和下載小說、線上收聽有聲小說、自動更新章節等功能

JavaScript 專案

13、Leaflet:對移動端友好的互動式地圖 JavaScript 庫。它久負盛名且簡單易用,別看它小但包含了地圖常用功能。Leaflet 極易上手,幾行程式碼就能實現地圖功能,且支援多種地圖資料來源。很多大廠都在用它,可放心在生產環境中使用。中文官網

var map = L.map('map').setView([51.505, -0.09], 13);

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: '©OpenStreetMap contributors'
}).addTo(map);

L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
    .openPopup();

14、React95:復古的 Win95 樣式 React 元件。線上預覽

15、towxml:可將 HTML 和 Markdown 轉為微信小程式 WXML 的庫。用於解決在微信小程式上 Markdown、HTML 不能直接渲染的問題

16、city-roads:自動生成任意城市的道路圖。採用 OpenStreetMap 的免費資料實現城市道路視覺化,還支援匯出圖片用這些圖片做桌布感覺很酷。線上嘗試

17、lexer:線上程式語言詞法分析器。基於 DFA 演算法實現支援多語言擴充套件,可用於程式碼編輯器的語法高亮等場景。同時專案的程式碼量少還有詳細的原始碼講解文件,適合對詞法分析感興趣的小夥伴學習。線上嘗試

// 詞法分析器
let lexer = {
    // 有限狀態自動機 deterministic finite automaton
    DFA: {
        result: {
            matchs: [], // 已匹配的字元佇列
            tokens: [], // 已生成的token列表
        },
        state: DFA_STATE_CONST.S_RESET, // 當前機器的狀態
        events: {
            flowtoNextState(ch, state) {
                lexer.DFA.resultChange.pushToMatchs(ch);
                lexer.DFA.state = state;
            },

            flowtoResetState() {
                lexer.DFA.state = DFA_STATE_CONST.S_RESET;
            },
        },
    },
};

18、semi-design:抖音開源的中後臺前端解決方案。包含設計語言、React 元件、主題,開箱即用可快速搭建美觀的 React 應用

  • 使用 TypeScript
  • 強大的主題定製
  • 國際化
  • 支援 SSR

Kotlin 專案

19、TranslationPlugin:IDE 翻譯外掛。支援 JetBrains 系列產品

Python 專案

20、python-pinyin:漢語轉拼音的 Python 庫。不知道有沒有小夥伴和我一樣,剛看到這庫不知道能用來幹啥。其實它可以用來豐富被搜尋的中文內容,通過該專案可實現拼音搜尋內容、容錯同音錯別字、中文排序等,從而提高搜尋準確度和體驗

>>> from pypinyin import pinyin, lazy_pinyin, Style
>>> pinyin('中心')
[['zhōng'], ['xīn']]
>>> pinyin('中心', heteronym=True)  # 啟用多音字模式
[['zhōng', 'zhòng'], ['xīn']]
>>> pinyin('中心', style=Style.TONE3, heteronym=True)
[['zhong1', 'zhong4'], ['xin1']]

21、q:用 SQL 方式查詢 CSV 檔案的命令列工具。支援 where、group_by、join 查詢和中文等多種字元編碼,還可以把查詢結果轉存到資料庫。終於不用為產品臨下班,扔來的 CSV 檔案而加班啦

q "SELECT COUNT(*) FROM ./clicks_file.csv WHERE c3 > 32.3"

ps -ef | q -H "SELECT UID,COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC"

22、Tkinter-Designer:用拖動的方式建立漂亮的桌面軟體。它的操作十分簡單,首先在 Figma 網站通過拖拽的方式構建應用,然後把設計好的應用地址和 token 輸入到 Tkinter-Designer 自動生成 Python 程式碼,最後就能得到介面簡潔大方的桌面應用啦。不用程式碼做出基於 tkinter 的桌面應用

23、30-Days-Of-Python:免費、零基礎的 Python 教程。保姆級 Python 教程內容雖為英文,但問題不大請放心食用

Rust 專案

24、polars:多執行緒、類 Pandas 的資料處理庫。底層採用 Apache Arrow 從而帶來了更高效的資料處理效能、佔用記憶體更少、處理速度更快,再加上簡單易用的 API,讓你在處理大資料集(50GB)時,更加遊刃有餘。支援 Rust、Python 等語言,值得一試

import polars as pl

q = (
    pl.scan_csv("iris.csv")
    .filter(pl.col("sepal_length") > 5)
    .groupby("species")
    .agg(pl.all().sum())
)

df = q.collect()

Swift 專案

25、Charts:支援 iOS/tvOS/OSX 的圖表庫。功能:

  • 8 種不同的圖表型別
  • 兩個軸支援縮放和縮放手勢
  • 組合圖表、匯出圖片
  • 等等

其它

26、chinese_chatbot_corpus:公開的中文聊天語料庫

27、supercookie:講解並實現如何通過 favicon.ico 跟蹤使用者。supercookie 的跟蹤方式不需要 cookie,原理是瀏覽器訪問網站時都會請求 favicon.ico 檔案,伺服器通過該請求為每個使用者分配一個 ID 從而實現跟蹤效果

28、git-cheat-sheet:Git 備忘錄。該專案不僅對 Git 常用命令做了分類展示,還有 Git 工作流的講解,能夠幫助新手快速上手 Git。中文版

29、flutter_deer:Flutter 練習專案。包含程式碼、UI 設計圖、整合測試、相關文章等

30、shellcheck:Shell 靜態分析工具。寫過 shell 指令碼的人,應該都經歷過執行除錯指令碼的情況。有了 shellcheck 無需執行就能發現 sh/bash 的語法、型別等錯誤

31、n:簡單易用的 Node.js 版本管理工具

32、aliyunpan:基於網頁版阿里雲盤開發的 PC 客戶端。能夠同時登陸和管理多個賬號、顯示檔案體積、資料夾樹,還可以線上播放網盤中的視訊並外掛字幕。支援 Windows、Linux、macOS 作業系統

開源書籍

33、AlgoXY:作者正在重寫《演算法新解》,開源倉庫同步更新。下載地址

機器學習

34、Real-ESRGAN:影像超解析度模型,修復漫畫影像的效果驚豔。通過 AI 技術將低解析度、模糊的影像修復成高清影像,可用於影像放大和提升質量。基於它實現的桌面工具, 還有可以直接使用的 Python 指令碼快去試試效果吧

35、qlib:微軟開源的 AI 量化交易平臺。它包含了資料處理、模型訓練、回測等模組,涵蓋了 Alpha 挖掘、風險建模、組合優化等功能

36、optuna:專為機器學習準備的超引數優化框架。採用高效的取樣和剪枝策略,支援簡單的 Python 語法,僅需少量程式碼便可進行分散式計算加速優化,除此之外還有更為直觀的視覺化頁面。全方位幫你調參,自動找到最優引數

最後

如果你在 GitHub 上發現了有趣的開源專案,就分享給大傢伙吧。

以上就是本期的所有內容了,看完還不過癮?

關注 「HelloGitHub 公眾號」不僅可以收到第一時間的更新。點選選單欄->往期->月刊

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

相關文章