MixGo V1.0 發佈,混合型高性能 Go 框架

Mix Go 是什麼

Mix Go 是混合型高性能 Go 框架,該框架改造整合了 gin, logrus, gorm, go-redis, jwt-go, gorilla ... 等多個流行組件,能夠開發 console, api, web, grpc 等各類項目,而且引入了依賴注入、控制反轉、事件驅動等高級特徵,框架追求簡單實用主義,試圖讓更多開發者以更低的學習成本得到極具生產力的第二編程語言。php

與其餘 Go 框架的差異

  • 骨架代碼所有基於 bean, event 依賴注入、控制反轉、事件驅動庫構建,同時內置了 Go 生態各個領域最流行的庫,包括 gin, gorm, logrus 等,而且這些離散的庫已經被整合爲一體,能夠相互關聯使用。
  • 骨架內置了 gin 做爲服務器,gin 嚴格來說並非框架,而是一個 server 庫,只提供了服務器相關的功能,請求處理,中間件,視圖渲染等。
  • 與 beego 等其餘 go 框架不一樣的是,mix-go 的依賴庫所有是獨立倉庫,當你只想使用某一個庫時,能夠直接使用語義化版本號,而不是 commitid 版本號。
  • 提供了 console, api, web, grpc 多種骨架生成工具,同時骨架代碼中包含很是豐富的範例,開箱即用。
  • 採用高度靈活的開發方式,框架只提供底層庫,而與具體功能相關的代碼都在骨架代碼中實現,用戶能更加細粒度的修改每一處細節。
  • 框架很是輕量靈活,依賴庫都可獨立使用,嚴格來說除了 console 命令行開發組件,其餘所有爲選裝。
  • 因爲骨架和核心類庫都由 Mix 本身打造,擁有和 MixPHP 一樣的設計哲學,PHP 的用戶能夠很容易上手開發。

與 Mix PHP 的關係

該框架與 MixPHP 設計哲學幾乎徹底一致,PHP 的用戶能夠很是容易的切換到 MixGo 進行開發,達到學一會二的效果,OpenMix 多是如今惟一一個打造跨語言框架的開源機構。git

微服務

因爲 gin 與 go-micro 是兼容的,所以能夠很是方便的擴展爲微服務。程序員

框架定位

當咱們開發 MixPHP 時發現框架的設計哲學能夠複製到 Go 生態,因而咱們着手實現讓更多的 PHP 中級程序員也可以使用 Go 打造高併發系統,讓 Mix 的用戶能學一會二,實現跨語言無差異開發。github

GitHub

支持的用戶請加個 Star 吧,讓更多人發現 Mix Go

開發文檔

技術交流

知乎:https://www.zhihu.com/people/...
微博:http://weibo.com/onanying
官方QQ羣:284806582, 825122875,敲門暗號:goerweb

快速開始

  • 安裝開發工具
go get -u github.com/mix-go/mix
  • 建立 api 應用骨架
mix api --name=hello
  • 編譯到骨架的 bin 目錄
cd hello
go build -o bin/go_build_main_go main.go
  • 執行
cd bin
./go_build_main_go
  • 啓動 api
$> ./go_build_main_go api
             ___         
 ______ ___  _ /__ ___ _____ ______ 
  / __ `__ \/ /\ \/ /__  __ `/  __ \
 / / / / / / / /\ \/ _  /_/ // /_/ /
/_/ /_/ /_/_/ /_/\_\  \__, / \____/ 
                     /____/


Server      Name:     mix-api
System      Name:     darwin
Go          Version:  1.13.4
Framework   Version:  1.0.5
Listen      Addr:     :8080
time=2020-08-28 18:54:31 level=info msg=Server start file=api.go:58

訪問測試 (新開一個終端):redis

$> curl http://127.0.0.1:8080/hello
{"message":"hello, world!","status":200}

開發工具

源碼倉庫中不只包含所有組件的源碼,還包含一個開發工具:apache

  • 能夠生成 console, api, web, grpc 等骨架代碼
  • 熱更新工具 (開發中)

Installation

  • 安裝
go get -u github.com/mix-go/mix

Help

查看命令幫助編程

$ mix
Usage: mix [OPTIONS] COMMAND [opt...]

Commands:
  version       Prints the current Mix Go version
  new           Create a console application
  api           Create a api application
  web           Create a web application
  grpc          Create a gRPC application

Global Options:
  -h, --help    Print usage
  -v, --version Print version information


Run 'mix COMMAND --help' for more information on a command.

Developed with Mix Go framework. (openmix.org/mix-go)

New application

建立應用骨架api

  • console
mix new --name=hello
  • api
mix api --name=hello
  • web (含websocket)
mix web --name=hello
  • grpc
mix grpc --name=hello

License

Apache License Version 2.0, http://www.apache.org/licenses/服務器

相關文章
相關標籤/搜索