آیریس یک چارچوب برنامهنویسی وب سریع، ساده اما کاملاً ویژه و بسیار کارآمد برای Golang است.
این چارچوب پایه قوی و آسان برای وبسایت یا رابط برنامههای بعدی شما فراهم میکند.
ویژگیهای Iris
- HTTP/2 (push، حتی داده تعبیه شده)
- میان افزارها (Accesslog، Basicauth، CORS، gRPC، Anti-Bot hCaptcha، JWT، MethodOverride، ModRevision، Monitor، PPROF، Ratelimit، Anti-Bot reCaptcha، Recovery، RequestID، Rewrite)
- نسخهبندی API
- Model-View-Controller
- وبسوکتها
- gRPC
- HTTPS خودکار
- پشتیبانی از ngrok به صورت داخلی برای قرار دادن برنامه شما به سرعت بالاترین شیوه ممکن در اینترنت
- مسیریابی منحصر به فرد با پارامترهای مسیر پویا که از انواع استاندارد مانند:uuid،:string،:int پشتیبانی میکند و ایجاد مسیریاب سفارشی
- فشرده سازی
- موتورهای نمایش (HTML، Django، Handlebars، Pug/Jade و غیره)
- ایجاد سرور فایل شخصی خود و میزبانی سرور WebDAV شخصی
- حافظه پنهان
- محلیسازی (i18n، نقشه سایت)
- جلسات
- واکنشهای غنی (HTML، متن، Markdown، XML، YAML، باینری، JSON، JSONP، Protocol Buffers، MessagePack، مذاکره محتوا، stream، رویدادهای ارسال شده توسط سرور، و غیره)
- فشرده سازی واکنشها (gzip، deflate، brotli، snappy، s2)
- درخواستهای غنی (بایند شدن پرس و جو URL، هدرها، فرمها، متن، XML، YAML، باینری، JSON، اعتبارسنجی، Protocol Buffers، MessagePack، و غیره)
- تزریق وابستگی (MVC، کنترلکنندهها، مسیریابهای API)
- مجموعه آزمون
نمونه کد
package main
// وارد کردن بسته
import "github.com/kataras/iris/v12"
func main() {
// تعریف نمونه آیریس
app := iris.New()
// استفاده از میان افزار فشردهسازی gzip
app.Use(iris.Compression)
// راهاندازی مسیریاب
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hello <strong>%s</strong>!", "World")
})
// گوش دادن به پورت
app.Listen(":8080")
}
آزمون عملکرد
ارسال 200,000 درخواست با پارامترهای پویا به عنوان اعداد صحیح، ارسال JSON به عنوان بدنه درخواست و دریافت JSON به عنوان واکنش.
چارچوب | زبان توسعه | درخواست در ثانیه | تاخیر | ظرفیت | زمان اتمام |
---|---|---|---|---|---|
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 | جاوا اسکریپت | 48,425 | 2.56ms | 15.39MB | 4.14s |
Express | جاوا اسکریپت | 23,622 | ۵.۲۵ms | 9.04MB | 8.41s |