一架梯子,一头程序猿,仰望星空!
Iris Web框架教程 > 内容正文

Go Iris Web框架介绍


Iris 是一个快速、简单但功能齐全、非常高效的 Go Web应用框架。

它为您的下一个网站或应用程序接口提供了优美的表现力和易于使用的基础。

Iris特性

  • HTTP/2(推送,甚至嵌入式数据)
  • 中间件(Accesslog、Basicauth、CORS、gRPC、Anti-Bot hCaptcha、JWT、MethodOverride、ModRevision、Monitor、PPROF、Ratelimit、Anti-Bot reCaptcha、Recovery、RequestID、Rewrite)
  • 应用程序接口版本化
  • 模型-视图-控制器
  • 网络接口
  • gRPC
  • 自动HTTPS
  • 内置 ngrok 支持,以最快的方式将您的应用程序放到互联网上
  • 以动态路径为参数的独特路由器,可使用:uuid、:string、:int…等标准类型,并可创建自己的路由器
  • 压缩
  • 视图引擎(HTML、Django、Handlebars、Pug/Jade 等)
  • 创建自己的文件服务器并托管自己的 WebDAV 服务器
  • 缓存
  • 本地化(i18n、网站地图)
  • 会话
  • 丰富的响应(HTML、文本、Markdown、XML、YAML、二进制、JSON、JSONP、协议缓冲区、MessagePack、内容协商、流、服务器发送事件等)
  • 响应压缩(gzip、deflate、brotli、snappy、s2)
  • 丰富的请求(绑定 URL 查询、标题、表单、文本、XML、YAML、二进制、JSON、验证、协议缓冲区、MessagePack 等)
  • 依赖注入(MVC、处理程序、API 路由器)
  • 测试套件

Demo

package main

// 导入包
import "github.com/kataras/iris/v12"

func main() {
  // 定义iris实例
  app := iris.New()
  // 使用gzip压缩中间件
  app.Use(iris.Compression)

 // 路由设置
  app.Get("/", func(ctx iris.Context) {
    ctx.HTML("Hello <strong>%s</strong>!", "World")
  })

  // 监听端口
  app.Listen(":8080")
}

性能测试

发送 200000 个请求,动态参数为 int,发送 JSON 作为请求体,接收 JSON 作为响应。

框架 开发语言 请求数/秒 延迟 吞吐量 完成时间
Iris Go 238954 521.69us 64.15MB 0.84s
Gin Go 229665 541.96us 62.86MB 0.87s
Chi Go 228072 545.78us 62.61MB 0.88s
Echo Go 224491 553.84us 61.70MB 0.89s
Martini Go 198166 627.46us 54.47MB 1.01s
Kestrel C# 163486 766.90us 47.42MB 1.23s
Buffalo Go 102478 1.22ms 28.14MB 1.95s
Koa Javascript 48425 2.56ms 15.39MB 4.14s
Express Javascript 23622 5.25ms 9.04MB 8.41s