MixGo V1.0 发布,混合型高性能 Go 框架

西域战神 2020-11-12 10:16:32 ⋅ 105 阅读

Mix Go 是什么

Mix Go 是混合型高性能 Go 框架,该框架改造整合了 ginlogrusgormgo-redisjwt-gogorilla ... 等多个流行组件,可以开发 consoleapiwebgrpc 等各种项目,并且引入了依赖注入、控制反转、事件驱动等高级特征,框架追求简单实用主义,试图让更多开发者以更低的学习成本获得极具生产力的第二编程语言。

与其他 Go 框架的差别

  • 骨架代码全部基于 beanevent 依赖注入、控制反转、事件驱动库构建,同时内置了 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 可能是现在唯一一个打造跨语言框架的开源机构。

微服务

由于 gin 与 go-micro 是兼容的,因此可以非常方便的扩展为微服务。

框架定位

当我们开发 MixPHP 时发现框架的设计哲学可以复制到 Go 生态,于是我们着手实现让更多的 PHP 中级程序员也可使用 Go 打造高并发系统,让 Mix 的用户能学一会二,实现跨语言无差别开发。

开发文档

技术交流

知乎:https://www.zhihu.com/people/onanying
微博:http://weibo.com/onanying

快速开始

  • 安装开发工具
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

访问测试 (新开一个终端):

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

开发工具

源码仓库中不仅包含全部组件的源码,还包含一个开发工具:

  • 可以生成 consoleapiwebgrpc 等骨架代码
  • 热更新工具 (开发中)

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

创建应用骨架

  • 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/


全部评论: 0

    我有话说:

    【开源资讯】JWCloud 专业版 v1.0.0 发布,基于 SpringCloud 研发的微服务框架

    简介 JavaWeb_Cloud 微服务平台是一款基于 SpringCloud 框架研发的分布式微服务框架,主要使用技术栈包括: SpringCloud、Vue、ElementUI

    Python ORM框架SQLAlchemy 1.3.20 发布

    SQLAlchemy 1.3.20 发布了。SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射(ORM)框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库

    gRPC 1.34.0 发布高性能 RPC 框架

    gRPC Core 的 1.34.0 版已经发布,详细的 gRPC 文档请参阅 grpc.io,此版本包含改进和一些错误修复,下面列出了本次更新的一些重点内容: Core 使用环境变量

    gRPC 1.35.0 发布高性能 RPC 框架

    gRPC Core 的 1.35.0 已经发布,详细的 gRPC 文档请参阅 grpc.io,此版本包含改进和一些错误修复,下面列出了本次更新的一些重点内容: Core Backport

    gRPC 1.36.0 发布高性能 RPC 框架

    gRPC 1.36.0 版本已发布。详细的 gRPC 文档请参阅 grpc.io,此版本包含一些改进和错误修复,下面列出了本次更新的一些重点内容: Core 删除在 c-ares DNS

    Pulsar Go Client 0.4.0 发布

    Pulsar Client Go 是 Apache Pulsar 的 Go 语言客户端。近期,社区发布 Pulsar Client Go 0.4.0 版本。 新特性 支持在

    Julia 1.6.0 发布高性能动态高级编程语言

    Julia 1.6.0 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟

    微型Java开发框架Solon 1.1发布,QPS达10万+

    简介 Solon 是一个微型的Java开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,2700多次的commit;内核保持0.1m的身材,超高的Web跑分,良好的使用体验

    OkHttps v3.0.0 发布,对 OkHttp3 轻量封装的框架

    OkHttps v3.0.0 已经发布,此版本更新内容包括: 1、项目分割,分离出 data 项目单独维护(JSON、XML 等结构化数据的统一抽象 API):https://gitee.com

    阿里巴巴中间件-Nacos 发布 v0.8.0 Pre-GA版本,安全稳定上生产

    服务注册和服务配置开源项目 Nacos 本周发布v0.8.0 Pre-GA 版本,作为开源项目生命周期中的里程碑版本之一

    pgagroal 1.1.0 发布高性能数据库连接池

    pgagroal 1.1.0 已经发布。 pgagroal 是一个 PostgreSQL 的原生协议连接池,具有高性能、 限制用户和数据库连接的数量、支持预填充、删除贡献连接、连接验证等

    Go 1.16 发布,支持 macOS ARM64

    Go 1.16 正式发布,该版本主要包括支持 macOS ARM64、工具链优化、运行时和库的实现优化。并且,该版本保留了Go 1兼容性的承诺,几乎所有 Go 程序都能像以前一样继续编译和

    Martian框架发布 3.0.3 版本,Redis分布式锁

    项目简介 Martian 是一个声明式 API 编程(DAP)框架,可以帮助你快速开发后端服务。 以HttpServer作为 http服务,彻底脱离Tomcat这一类的Web容器和Servlet

    Helidon 2.1.0 发布,Oracle 微服务框架

    Helidon 2.1.0 现已发布,这是一个次要发行版,包含了一些错误修复和增强功能。Helidon 是 Oracle 开源的一个用于编写微服务的 Java 框架,这些微服务运行在由 Netty

    Go 1.16 首个 Beta 版本发布

    Go 1.16 发布了首个 Beta 测试版,正式版计划于明年2月发布。 以下内容摘录自 Go 1.16 release notes: 支持 64 位 ARM 架构的 macOS

    Projector 1.0 GA,JetBrains 出品的远程访问 IDE 工具

    JetBrains 出品的 Projector 1.0 已正式 GA。根据发布公告的介绍,Projector 是用于在网络上远程运行 JetBrains IDE 和 Swing 应用程序的工具和框架

    极速后台框架 FastAdmin v1.2.0.20210125 新增插件 API 文档生成

    FastAdmin 更新日志 v1.2.0.20210125_beta 新增自定义插件API文档生成 新增登录和鉴权状态显示 新增自定义测试提交参数 优化安装脚本 优化cookie加密 修复系统

    Bootstrap 4.6.0 发布,前端开发框架

    Bootstrap 4.6.0 发布了。 v4.6.0 最大的变化是官方对开发环境进行了大的调整以匹配即将正式发布v5 版本。官方表示,目前 v4.x 版本的文档改为基于 Hugo

    CKEditor 5 v23.1.0 发布,支持嵌入 Raw HTML

    CKEditor 5 v23.1.0 稳定版已发布,主要更新内容包括:支持在编辑器嵌入原生 HTML 代码并进行渲染、改进 reconversion API 以及支持将表格内容粘贴到另一个表格