إيريس هو إطار تطبيقات الويب المكتوب بلغة الجو لامع وبسيط ومتكامل وفعّال للغاية.
يوفر أساسًا معبرًا وسهل الاستخدام لواجهة موقع الويب أو التطبيق التالي.
ميزات إيريس
- HTTP/2 (دفع البيانات، حتى البيانات المضمَّنة)
- وسيطات (سجل الوصول، المصادقة الأساسية، CORS، gRPC، Anti-Bot hCaptcha، JWT، MethodOverride، ModRevision، Monitor، PPROF، Ratelimit، Anti-Bot reCaptcha، Recovery، RequestID، Rewrite)
- إصدار واجهة برمجة تطبيقات (API)
- Model-View-Controller
- Websockets
- gRPC
- HTTPS تلقائي
- دعم ngrok المدمج لنشر تطبيقك على الويب بأسرع طريقة ممكنة
- موجِّه فريد مع معلمات مسار ديناميكية، مدعمة لأنواع البيانات القياسية مثل :uuid و :string و :int وإنشاء الموجِّه المخصص
- ضغط
- مُحرِّكات العرض (HTML، Django، Handlebars، Pug/Jade، إلخ)
- إنشاء خادم ملفات خاص واستضافة خادمك الخاص لـ WebDAV
- تخزين مؤقت
- توطين (i18n، خريطة الموقع)
- جلسات
- استجابات غنية (HTML، نص، Markdown، XML، YAML، ثنائي، JSON، JSONP، Protocol Buffers، MessagePack، تفاوض المحتوى، تيار، أحداث مرسلة من الخادم، إلخ)
- ضغط الاستجابة (gzip، deflate، brotli، snappy، s2)
- طلبات غنية (ربط استعلام URL، رؤوس، نماذج، نص، XML، YAML، ثنائي، JSON، التحقق، Protocol Buffers، MessagePack، إلخ)
- حقن التبعية (MVC، معالجون، موجِّهات واجهة برمجة تطبيقات)
- مجموعة الاختبارات
عرض توضيحي
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("مرحبًا <strong>%s</strong>!", "العالم")
})
// الاستماع على المنفذ
app.Listen(":8080")
}
اختبار الأداء
إرسال 200,000 طلب مع معلمات ديناميكية كأعداد صحيحة، إرسال JSON كجسم الطلب، واستقبال JSON كاستجابة.
الإطار | لغة التطوير | الطلبات في الثانية | الكمون | النواة | وقت الاستكمال |
---|---|---|---|---|---|
إيريس | جو | 238,954 | 521.69us | 64.15MB | 0.84s |
جين | جو | 229,665 | 541.96us | 62.86MB | 0.87s |
تشي | جو | 228,072 | 545.78us | 62.61MB | 0.88s |
إيكو | جو | 224,491 | 553.84us | 61.70MB | 0.89s |
مارتيني | جو | 198,166 | 627.46us | 54.47MB | 1.01s |
كيستريل | سي شارب | 163,486 | 766.90us | 47.42MB | 1.23s |
بوفالو | جو | 102,478 | 1.22ms | 28.14MB | 1.95s |
كوا | جافاسكربت | 48,425 | 2.56ms | 15.39MB | 4.14s |
إكسبرس | جافاسكربت | 23,622 | 5.25ms | 9.04MB | 8.41s |