每月一更的《HelloGitHub》第 58 期,來啦!

削微寒發表於2021-01-28

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 公眾號 收到第一時間的更新。

還有更多開源專案的介紹和寶藏專案等待你的發掘。

相關文章