HelloGitHub 分享 GitHub 上有趣、入門級的開源專案。歡迎大家:
- 貢獻程式碼
- 宣傳你覺得優秀的專案
- Star 專案⭐️
本月刊是每月 28 號更新,再見月刊就是年後了。在這裡提前祝大家:新年快樂!
下面便是第 58 期的內容啦,希望大家喜歡
以下為本期內容|每個月 28 號釋出最新一期|點選檢視往期內容
C# 專案
1、EverythingToolbar:把搜尋和啟動應用等功能整合到 Windows taskbar 的工具。效果如下圖:
C++ 專案
2、ChordNova:一款開源免費的和絃生成工具。我不懂樂理,但單從這個軟體的介面就感受到了專業,因為有很多樂理的名詞?
Go 專案
3、containers-the-hard-way:用 Go 實現迷你 Docker,包含 dokcer 核心功能的開源專案。該專案僅用 Linux 系統介面實現了類似容器的功能,這些能夠幫助你更好地瞭解容器的工作方式。如果你想更深入地理解容器,就參考本專案寫一個迷你 Docker 吧
4、vegeta:基於 Go 語言的 HTTP 壓測工具。目前市面上的壓測工具已經很多了,但是今天推薦的這款驚豔到我點是下面這條命令執行後的效果(vegeta+jaggr+jplot),讓我們一起來感受下吧
echo 'GET http://localhost:8080' | \
vegeta attack -rate 5000 -duration 10m | vegeta encode | \
jaggr @count=rps \
hist\[100,200,300,400,500\]:code \
p25,p50,p95:latency \
sum:bytes_in \
sum:bytes_out | \
jplot rps+code.hist.100+code.hist.200+code.hist.300+code.hist.400+code.hist.500 \
latency.p95+latency.p50+latency.p25 \
bytes_in.sum+bytes_out.sum
5、delve:一款 Go 語言的除錯工具。如果你還在像我一樣用 fmt.Println
除錯 go 的程式碼,就試試這個工具吧。萬星的開源專案可不是開玩笑的,它上手簡單並且支援多種方式呼叫,助你快速找到 Bug
6、rqlite:用 Go 實現的基於 SQLite 輕量級、分散式關聯式資料庫。如果你對分散式資料庫的原理及實現感興趣的話,這個專案真的是你入門這方面的不二之選,這個專案用 SQLite 作為儲存引擎,讓你可以把更多的精力放在理解分散式的知識上,嘗試閱讀下這個專案的文件,相信你會對它感興趣的。設計圖如下:
Java 專案
7、JustAuth:幫你搞定第三方登陸的 Java 開源元件。使用簡單、接入方便,幫你隨心所欲地接入第三方登陸,讓登陸變得簡單。目前已經支援十多個平臺,還在持續擴充中
8、java-design-patterns:設計模式 Java 的最佳實踐,出自開源社群大佬們之手。做為有夢想和追求的 Java 程式設計師,當然需要會一些設計模式啦。這個專案雖然是英文的但是先看程式碼和圖,嘗試理解含義那麼英文描述也就能猜的八九不離十了。不要讓英語作為你不努力的藉口,努力變強吧!線上閱讀
9、apollo:攜程開源的分散式配置中心。開箱即用理念發揮到極致,比如:伺服器部分基於 Spring Boot 和 Spring Cloud 開發,執行方便無需額外的 Tomcat 應用容器。並且具備配置修改後即時生效、規範的許可權、流程治理等特性,適用於微服務配置管理場景
10、Logi-KafkaManager:功能強大的 Kafka 叢集監控和運維管理平臺。強大到我一度以為它是付費的,如果你的公司用 Kafka 的話,可以試試主導把這個專案在公司內部用起來,那你離升職和加薪就不遠了
11、Anki-Android:高效學習神器 Anki 安卓客戶端。Anki 是一個幫助學習的記憶卡片軟體,卡片正面是問題背面是答案,然後根據記憶公式幫你複習和記牢。下載地址 如果下載後不會用的話,本文點贊過 100 我出一份小白教程給大家上手這個神器
JavaScript 專案
12、cloudbase-framework:騰訊開源的雲原生一體化部署工具。一鍵將專案部署上雲,不限制框架和語言
13、newbee-mall-vue3-app:基於 Vue 3.0 技術棧的電商網站前端開源專案。它麻雀雖小五臟俱全,包含模組:首頁、型別分類、搜尋、地址管理、登入註冊等等,該有的基本上都有涉及到。對新手友好,在熟悉 Vue 3.x 的朋友也可以來看看
14、X6:AntV 旗下的圖編輯引擎。提供了開箱即用的互動元件和簡單易用的節點定製能力,從而能夠快速完成流程圖、DAG 圖、ER 圖等圖應用。示例程式碼:
import { Graph } from '@antv/x6';
const graph = new Graph({
container: document.getElementById('container'),
width: 800,
height: 600,
background: {
color: '#fffbe6', // 設定畫布背景顏色
},
grid: {
size: 10, // 網格大小 10px
visible: true, // 渲染網格背景
},
});
15、hearthstone-battlegrounds-tools:暴雪爐石傳說遊戲的記牌外掛。不懂程式設計的小夥伴拿去用就好了,支援 Windows 和 macOS 系統。開發者的話,這是一整套完整的 Electronjs 開發流程,從多個渲染程式的管理、不同平臺的差異化處理、版本的控制與釋出等方面都做了細緻的封裝,學起來吧。功能上她還具有以下特性:
- ? 當天戰績統計,歷史戰績查詢
- ? 統計你所使用過的英雄,自動計算每個英雄的平均排名、選擇率
- ? 選擇英雄時展示可選英雄的大資料選擇率、平均排名等
- ? 對局資訊記錄,記錄對局過的對手陣容
- ✈️ 一鍵拔線(可怕)
- 等等
16、Multiavatar:生成人物頭像的 JS 庫。支援隨機生成一個好看、獨特、多文化的頭像
PHP 專案
17、mochat:一套開源的企業微信開發框架和管理系統。基於 PHP 開發的前後端分離、功能強大的企業微信管理平臺
18、easy-sms:簡訊傳送 PHP 元件。特點:
- 支援目前市面多家服務商
- 一套寫法相容所有平臺
- 簡單配置即可靈活增減服務商
- 內建多種服務商輪詢策略、支援自定義輪詢策略
- 等等
use Overtrue\EasySms\EasySms;
$config = [
// HTTP 請求的超時時間(秒)
'timeout' => 5.0,
// 預設傳送配置
'default' => [
// 閘道器呼叫策略,預設:順序呼叫
'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
// 預設可用的傳送閘道器
'gateways' => [
'yunpian', 'aliyun',
],
],
// 可用的閘道器配置
'gateways' => [
'errorlog' => [
'file' => '/tmp/easy-sms.log',
],
'yunpian' => [
'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',
],
'aliyun' => [
'access_key_id' => '',
'access_key_secret' => '',
'sign_name' => '',
],
//...
],
];
$easySms = new EasySms($config);
$easySms->send(13188888888, [
'content' => '您的驗證碼為: 6379',
'template' => 'SMS_001',
'data' => [
'code' => 6379
],
]);
Python 專案
19、Zappa:Python 無服務框架,功能即服務(serverless)。你知道 serverless 是什麼嗎?不懂的老鐵釦 1 ? 我攤牌了我不懂這個玩意兒。直到我看到了 Zappa 這個專案,然後我的腦海裡就幾個字:甩手掌櫃。用它開發完功能,幾個命令打包上傳到雲服務平臺,然後就不用管啦!不僅程式設計師喜歡它,老闆也喜歡因為能夠降低伺服器成本(省錢)。來感受下“知識”的力量吧
20、streamlit:能夠快速地把資料製作成視覺化、互動頁面的 Python 框架。分分鐘讓你的資料變成圖表,並且該專案提供免費的共享服務平臺幫你的專案上線,方便資料的共享和討論
21、lastversion:幫你找到庫或者軟體最新版本的 Python 工具。它可以避開不同專案作者使用的不同風格的版本號,獲取一個專案的最新版本號,下載或安裝它們。本專案可用於 build system,比如自動更新指令碼。支援從這些網站搜尋:GitHub、GitLab、PyPI 等,確保版本最新和穩定
# 獲取最新的 Linux 版本號和最新的 Wordpress 版本號
lastversion linux
# 作者的版本標籤:v5.10
# 本專案提供的版本標籤:5.10
lastversion wordpress
# 作者的版本標籤:5.6
# 本專案提供的版本標籤:5.6
22、xonsh:支援 Python 賦能的 shell。如果你不會編寫 shell 指令碼,但是會 Python。那通過這個專案可以讓你混用 shell 命令和 Python 語法,高效快速地完成你想要的功能
Ruby 專案
23、spree:基於 Ruby on Rails 實現的大而全的電子商城開源專案。功能齊全專案結構清晰:
- spree_api:REST API 介面
- spree_frontend:移動優先,可自定義的店面
- spree_backend:功能豐富的管理皮膚
- spree_cmd:開發人員的命令列工具
- spree_core:資料層、服務和郵件、基本元件
Swift 專案
24、mas:Mac App Store 命令列版
25、Moya:基於 Alamofire 的輕量級 Swift 網路層框架。它提供了網路抽象層,使用起來足夠簡單,能夠方便地與 RXSwift、PromiseKit、ObjectMapper 結合,輕鬆地應對常見的開發任務。同時也非常全面,應對複雜任務也同樣容易。最後 Moya 有一個很棒的社群,貢獻者們提供了很多實用的擴充套件
provider = MoyaProvider<GitHub>()
provider.request(.zen) { result in
switch result {
case let .success(moyaResponse):
let data = moyaResponse.data
let statusCode = moyaResponse.statusCode
// do something with the response data or statusCode
case let .failure(error):
// this means there was a network failure - either the request
// wasn't sent (connectivity), or no response was received (server
// timed out). If the server responds with a 4xx or 5xx error, that
// will be sent as a ".success"-ful response.
}
}
26、MTMR:自定義 TouchBar 的應用。你問我體驗如何?我沒錢買帶 TouchBar 的電腦啊,你裝上我看看就行了
其它
27、game-programmer:遊戲程式設計師的學習路徑圖。一位遊戲開發大神開源的專案,希望能夠幫助嚮往遊戲開發的你 or 你的孩子,走上游戲開發這條“不歸路”。中文
28、theia:Eclipse 開源的 IDE 工具。我歲數大了,用慣了一個 IDE 就不想換了,喜歡嚐鮮的小夥伴可以去把玩一下。看介紹像是一個擁抱開源,與 VS Code 功能相近的開發工具
29、luarocks:Lua 包管理工具。支援三大平臺,安裝和使用如下:
$ wget https://luarocks.org/releases/luarocks-3.5.0.tar.gz
$ tar zxpf luarocks-3.5.0.tar.gz
$ cd luarocks-3.5.0
$ ./configure && make && sudo make install
$ sudo luarocks install luasocket
$ lua
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
> require "socket"
30、Ad-papers:計算廣告相關論文、學習資料和業界分享集合
31、awesome-seo:有關 Google SEO 和流量變現資料的專案。該專案是作者學習 SEO 過程中整理的權威資料,推薦給有個人網站的小夥伴們
32、makeaplan_public:使用 Flutter 和 Go 開發的「制定計劃 APP」。幫助使用者記錄和追蹤自己的計劃,輔助使用者完成自己的目標。手機端用的是 Flutter 後端用 Go 實現,伺服器和客戶端通過 ProtoBuffer+grpc 進行通訊。可作為學習 Flutter 和 Go 的實戰專案
33、free-font:免費可商用的字型集合。這個專案收錄的都是免費可商用的字型,並且仔細地標記出了商用時是否需要獲取授權等細節
開源書籍
34、DeepLearning-500-questions:《深度學習 500 問》AI 工程師面試知識點的書籍。內容涵蓋深度學習的知識點及各大公司常見的筆試題
機器學習
35、nanodet:移動端的輕量級 Anchor-Free 目標檢測模型。具有體積小(1.8 MB)、速度快(10.23 ms)、便於訓練(硬體要求低)、部署簡單(安卓示例)等優點
36、DeepMoji:通過深度學習把自然語言轉化成 emoji 表情的專案。用機器學習來了解文字表達的情感,最後返回幾個感情相近的 emoji 表情。該專案有趣且易於學習,包含機器學習專案該有的所有內容:示例、模型、資料、測試、原始碼等
最後
如果你發現了 GitHub 上有趣的專案,歡迎在 HelloGitHub 專案提 issues 告訴我們。
關注 HelloGitHub 公眾號 收到第一時間的更新。
還有更多開源專案的介紹和寶藏專案等待你的發掘。