《HelloGitHub》第 67 期

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

簡介

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

//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、Android和 iOS 客戶端,下載地址

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

JavaScript 項目

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

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

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

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