Iris là một framework ứng dụng web Golang nhanh, đơn giản nhưng đầy đủ tính năng và hiệu quả cao.

Nó cung cấp nền tảng rõ ràng và dễ sử dụng cho trang web tiếp theo hoặc giao diện ứng dụng của bạn.

Các tính năng của Iris

  • HTTP/2 (push, thậm chí cả dữ liệu nhúng)
  • Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
  • Phiên bản API
  • Model-View-Controller
  • Websockets
  • gRPC
  • HTTPS tự động
  • Hỗ trợ ngrok tích hợp để đưa ứng dụng của bạn lên mạng nhanh nhất có thể
  • Bộ định tuyến duy nhất với tham số đường dẫn động, hỗ trợ các loại chuẩn như :uuid, :string, :int, và tạo đường dẫn tùy chỉnh
  • Nén
  • Các engine hiển thị (HTML, Django, Handlebars, Pug/Jade, vv.)
  • Tạo máy chủ tệp của riêng bạn và lưu trữ máy chủ WebDAV của riêng bạn
  • Bộ nhớ cache
  • Đa ngôn ngữ (i18n, sitemap)
  • Phiên
  • Phản hồi phong phú (HTML, văn bản, Markdown, XML, YAML, nhị phân, JSON, JSONP, Protocol Buffers, MessagePack, đàm phán nội dung, stream, sự kiện gửi từ máy chủ, vv.)
  • Nén phản hồi (gzip, deflate, brotli, snappy, s2)
  • Yêu cầu phong phú (ràng buộc truy vấn URL, tiêu đề, biểu mẫu, văn bản, XML, YAML, nhị phân, JSON, xác nhận, Protocol Buffers, MessagePack, vv.)
  • Tiêm phụ thuộc (MVC, xử lý, định tuyến API)
  • Bộ thử nghiệm

Demo

package main

// Nhập gói
import "github.com/kataras/iris/v12"

func main() {
  // Xác định phiên bản iris
  app := iris.New()
  // Sử dụng middleware nén gzip
  app.Use(iris.Compression)

  // Cài đặt bộ định tuyến
  app.Get("/", func(ctx iris.Context) {
    ctx.HTML("Xin chào <strong>%s</strong>!", "Thế giới")
  })

  // Lắng nghe cổng
  app.Listen(":8080")
}

Kiểm tra hiệu suất

Gửi 200.000 yêu cầu với tham số động dưới dạng số nguyên, gửi JSON như cơ thể yêu cầu và nhận JSON như phản hồi.

Framework Ngôn ngữ Phát triển Yêu cầu mỗi giây Độ trễ Lưu lượng Thời gian hoàn thành
Iris Go 238,954 521,69us 64,15MB 0,84s
Gin Go 229,665 541,96us 62,86MB 0,87s
Chi Go 228,072 545,78us 62,61MB 0,88s
Echo Go 224,491 553,84us 61,70MB 0,89s
Martini Go 198,166 627,46us 54,47MB 1,01s
Kestrel C# 163,486 766,90us 47,42MB 1,23s
Buffalo Go 102,478 1,22ms 28,14MB 1,95s
Koa Javascript 48,425 2,56ms 15,39MB 4,14s
Express Javascript 23,622 5,25ms 9,04MB 8,41s