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 |