《HelloGitHub》第 74 期

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

簡介

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

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

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


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

C 項目

1、entr:在文件有改動時自動觸發任意命令的工具。採用 kqueue 或 inotify 事件通知接口監聽文件改動事件,避免輪詢造成的資源浪費,可用於實現自動編譯、重啓、測試、同步等功能

# 自動 make 
find src/ | entr sh -c 'make | head -n 20'
# 自動重啓服務
ls *.js | entr -r node app.js

2、open-gpu-kernel-modules:英偉達開源的 Linux GPU 內核驅動。關於開源的原因網友們衆說紛紜黑客勒索、被 Linus 罵的、擁抱開源,但無論如何這是件好事,至於這件事後續對 Linux 系統的影響就讓我們拭目以待吧

3、sioyek:免費開源的 PDF 閱讀器。支持交互式快速搜索文檔,而且就算文檔中的引用沒有鏈接也可以直接跳轉,特別適合 PC 端閱讀和研究論文、技術文檔等

4、ServerStatus:多服務器雲監控。輕鬆監控多臺服務器狀態的工具,用於解決多個不同平臺下的服務器狀態監控問題

5、FreeRDP:完全免費的遠程桌面管理工具。此項目爲遠程桌面協議(RDP)的一個開源實現,通過它可以輕鬆實現 macOS 或 Linux 遠程操作 Windows 桌面系統反之亦可,使用起來十分方便和流暢。下載地址

C# 項目

6、TowerDefense-GameFramework-Demo:開源的塔防遊戲示例。此項目主要用來上手和學習基於 Unity 引擎的遊戲框架 GameFramework,感興趣的同學可以把玩一下。遊戲共有五個關卡,玩家通過擊殺敵人和建造能量塔獲取資源,消耗能量建造防禦塔阻止敵人攻擊基地

C++ 項目

7、Cpp_Primer_Practice:《C++ Primer》中文版第 5 版的學習筆記。該項目不僅包含學習筆記還有課後習題的答案

8、serenity:開源桌面操作系統。一款披着復古外衣現代的類 Unix 開源操作系統。從內核到 Web 瀏覽器均採用 C++ 編寫,沒有依賴現成的第三方庫,外觀模仿 90 年代操作系統界面的風格,我認爲這是一封極客致敬經典的情書

9、polybar:超酷的 Linux 桌面狀態欄工具。使用時無需精通 shell 就能上手,輕鬆完成高度自定義的狀態欄。還有更多現成的主題,拿來即用點擊查看

CSS 項目

10、weui:微信開源的原生基礎樣式庫。爲微信內網頁和小程序量身設計的樣式庫,包括按鈕、徽章、進度條、圖標、對話框等各式元素

Go 項目

11、httprunner:開源的 API 測試工具。支持豐富的網絡協議,涵蓋接口測試、性能測試等測試類型的測試工具

  • 多種網絡協議:支持 HTTP(S)/HTTP2/WebSocket/RPC 等
  • 多格式可選:測試用例支持 YAML/JSON/go test/pytest 格式
  • 雙執行引擎:同時支持 Golang/Python 兩個執行引擎
  • 一鍵部署:一條命令在 macOS/Linux/Windows 完成安裝部署
  • 網絡性能採集:在場景化接口測試的基礎上,可額外採集網絡鏈路性能指標

12、fx:命令行 JSON 瀏覽工具。看似簡單卻十分實用的 JSON 命令行查詢工具,支持流式和交互式兩種查詢方式

13、zinc:輕量級全文搜索引擎。Go 語言下的輕量級搜索引擎,支持中文搜索自帶 Web 管理界面

14、ants:高性能 goroutine 池。實現了大規模下的 goroutine 調度和複用,從而節省資源提高執行效果。還有如任務提交、動態調整 pool 大小、查詢運行狀態等實用接口

Java 項目

15、jclasslib:Java 字節碼瀏覽器。支持可視化操作、查看、編輯編譯好的 Java 類文件的開發工具

16、RuoYi:開箱即用的權限管理系統。基於 SpringBoot 開發的後臺管理系統,包含用戶管理、部門管理、角色管理、登錄日誌、定時任務、服務監控等功能,可以用來快速構建 CMS、CRM、OA 等系統

17、debezium:捕獲數據更改(CDC)的流式處理平臺。可以監控數據庫中的數據變動,把每一個行級別的數據改動,通過流的方式實時同步給其他服務。適用於更新緩存、更新搜索、雙寫等場景

18、shardingsphere:一套開源的分佈式數據庫增強計算引擎。可將多種數據庫轉換爲分佈式數據庫的生態系統,就是把多種不同類型的數據整合成對外是一個整體的數據庫,即化零爲整。充分合理地利用數據庫的計算和存儲能力,解決數據分片、數據加密、異構數據查詢等痛點

19、hertzbeat:易用友好的雲監控系統。適用於應用服務、數據庫、網站、API、操作系統等監控的場景,可以幫助中小型團隊快速搭建監控系統

JavaScript 項目

20、fortune-sheet:類似 Excel 的電子表格組件。使用簡單無需繁瑣的配置,內置多種 Excel 常用功能,並且支持在線協同編輯

import React from 'react';
import ReactDOM from 'react-dom';
import { Workbook } from "@fortune-sheet/react";
import "@fortune-sheet/react/dist/index.css"

ReactDOM.render(
  <Workbook data={[{ name: "Sheet1" }]} ></Workbook>,
  document.getElementById('root')
);

21、xterm.js:功能齊全的終端前端組件。用 TypeScript 編寫的前端組件,提供了完整的終端功能、支持鼠標事件、豐富的 Unicode 支持。在衆多流行開源項目中都能看到它的身影,比如 VS Code、Hyper 和 Theia 等

22、WebGAL:無需開發基礎分分鐘就能學會所有語法,立馬開始創作自己的 Galgame。在線嘗試

23、bytemd:掘金社區開源的 Markdown 編輯器組件。基於 Svelte 構建的 Markdown 編輯器組件,功能齊全還可以通過插件擴展功能,默認安全且兼容 SSR,適用於 React、Vue 和 Angular 框架

// React
import { Editor, Viewer } from '@bytemd/react'
import gfm from '@bytemd/plugin-gfm'

const plugins = [
  gfm(),
  // Add more plugins here
]

const App = () => {
  const [value, setValue] = useState('')

  return (
    <Editor
      value={value}
      plugins={plugins}
      onChange={(v) => {
        setValue(v)
      }}
    />
  )
}

Kotlin 項目

24、PermissionX:解決 Android 運行時權限的庫。該項目本是作者寫的一本書中的練手項目,後來經過不斷優化和功能迭代,已經可以真正做到簡化 Android 運行時權限處理的工作,所以就有了我們現在看到的 PermissionX。時至今日它依舊在持續更新,沒有停下變得更好的腳步,或許這就是工匠精神的體現吧。中文文檔

PHP 項目

25、framework:簡約大方的論壇項目。這是一個用 PHP+Mithril 開發的免費、美觀、簡單、速度快的論壇系統

Python 項目

26、pyenv:簡單易用的 Python 版本管理工具。開發者有時候因爲歷史遺留問題,需要維護依賴不同 Pyhton 版本的項目,這時就需要安裝和管理多個 Python 版本,這是一件十分痛苦的事情。而 pyenv 恰好完美地解決了這一痛點,它支持 global、local、shell 三種模式,開發者可以根據情況靈活地切換不同的 Python 版本,這一切僅需一條命令

安裝 pyenv:brew install pyenv
安裝 Python:pyenv install 3.10.4
切換版本:pyenv shell|local|global
shell:當前 shell
local:當前目錄
global:全局

27、Archery:在線 SQL 審覈平臺。採用 Django+Bootstrap 框架開發而成,支持 MySQL、Oracle 等數據庫的 SQL 上線、備份、慢日誌查詢等功能。在線嘗試

28、xxh:在 SSH 服務器時帶上自己喜歡的 shell。你的 shell 裏是不是塞滿了快捷腳本、工具和顏色,但在 SSH 遠程連接服務器時,你就會失去這一切。xxh 可以把你最喜歡的 shell 帶到任何地方

Oh My Zsh:source xxh.zsh anyhost +I xxh-plugin-zsh-ohmyzsh +if +q 
xonsh:xxh anyhost +s xonsh

29、Handright:模擬手寫體中文的 Python 庫。基於 PIL 開發實現的工具庫,能夠輸出手寫體中文的圖片,支持自定義背景圖

# coding: utf-8
from PIL import Image, ImageFont

from handright import Template, handwrite

text = "分享 GitHub 上有趣、入門級開源項目"
template = Template(
    background=Image.new(mode="1", size=(1024, 2048), color=1),
    font=ImageFont.truetype("path/to/my/font.ttf", size=100),
)
images = handwrite(text, template)
for im in images:
    assert isinstance(im, Image.Image)
    im.show()

30、OneForAll:功能強大的子域收集工具。具有強大的子域收集能力、支持子域驗證、速度快等特點的子域掃描工具

Ruby 項目

31、solidus:開源的簡約電商平臺。基於 Ruby on Rails 構建的電商平臺,界面清爽代碼完全開源。在線嘗試

Rust 項目

32、mdBook:Rust 官方開源的 Markdown 電子書構建工具。類似 Gitbook 可以將 Markdown 文件製作成在線書籍,簡單易用非常適合創建教程、課程材料、開源書籍等文稿

Swift 項目

33、TermiWatch:終端風格的 iWatch 手錶面

其它

34、opensource.guide:GitHub 官方的開源指南。爲想學習如何創建和貢獻開源項目的個人、社區和公司提供的資源集合,中文

35、pinball:谷歌開源的彈珠檯遊戲。使用 Flutter 和 Firebase 平臺開發的彈珠檯遊戲,可運行在 Android、iOS、Windows、macOS、Linux 操作系統。在線試玩

36、A-Programmers-Guide-to-English:專爲程序員編寫的英語學習指南。一位程序員提升英語水平的實踐經驗分享,還有相關訓練方法和用到的工具,點擊查看

37、code996:根據 git 的提交時間推斷工作強度的工具。通過分析 git 提交記錄,得出是否加班、工作強度的可視化圖表的工具

38、Thanks-Mirror:國內公共倉庫鏡像的集合。該項目包含開發常用的庫、軟件、系統鏡像地址以及使用的方法

39、flutter_floatwing:Flutter 的 Android 浮動窗口插件。該插件能夠讓開發者使用 Flutter 完成浮動窗口的功能開發,同時無需任何原生 Android 開發的背景

40、wechat-report:自制微信聊天年度報告。教你如何生成和女朋友微信聊天記錄的年度報告項目

開源書籍

41、TCP-IP-NetworkNote:《TCP/IP 網絡編程》學習筆記。除了筆記還包含書中的代碼實現和課後習題回答

42、machine-learning-yearning-cn:《Machine Learning Yearning》中文版。《機器學習訓練祕籍》樣稿吳恩達著,在線閱讀

43、the-unix-workbench:《The Unix Workbench》該書面向剛接觸編程和類 Unix(如 macOS)和 Linux 操作系統的開發者,幫你快速上手命令行以及搞懂相關知識。在線閱讀

機器學習

44、WantWords:拯救詞窮的字典。由清華大學 NLP 實驗室開源,可以根據你的意思返回相關詞彙,有效解決詞窮、話到嘴邊說不出來的窘境。在線嘗試

45、mindsdb:用 SQL 開啓機器學習的數據庫。把機器學習引入 SQL 數據庫將模型作爲虛擬表(AI-table),從而省去了數據準備、預處理等步驟,可以直接用 SQL 查詢時間序列、迴歸、分類預測的結果,實現簡化機器學習開發流程的效果

46、machine_learning_complete:全面的機器學習教程庫。一份包含 30 多個 Jupyter Notebook 的集合庫,內容涵蓋機器學習所需的 Python 基礎,數據操作、清洗、分析、可視化常用的庫和工具,以及經典機器學習、NLP、計算機視覺等算法,一份面面俱到的機器學習入門教程

最後

如果你發現了 GitHub 上有趣的項目,就點擊分享給大傢伙吧。

以上就是本期的所有內容了,往期內容點擊閱讀

感謝您的閱讀,如果覺得本期內容還不錯的話 求贊、求分享 ❤️

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章