Iris, hızlı, basit ancak tam özellikli ve son derece verimli bir Golang web uygulama çatısıdır.

Bir sonraki web sitesi veya uygulama arayüzünüz için ifade edici ve kolay kullanımlı bir temel sağlar.

Iris özellikleri

  • HTTP/2 (itme, hatta gömülü veri)
  • Ara yazılım (Erişim kaydı, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitör, PPROF, Ratelimit, Anti-Bot reCaptcha, Kurtarma, RequestID, Yeniden yazma)
  • API sürümlendirme
  • Model-Görünüm-Kontrolcü
  • Websockets
  • gRPC
  • Otomatik HTTPS
  • Uygulamanızı en hızlı şekilde çevrimiçi yapmak için yerleşik ngrok desteği
  • Dinamik yol parametrelerine sahip benzersiz yönlendirici, :uuid, :string, :int gibi standart tipleri destekler, özel yönlendirici oluşturma
  • Sıkıştırma
  • Görünüm motorları (HTML, Django, Handlebars, Pug/Jade, vb.)
  • Kendi dosya sunucusunu oluşturun ve kendi WebDAV sunucunuzu barındırın
  • Önbellek
  • Yerelleştirme (i18n, site haritası)
  • Oturumlar
  • Zengin yanıtlar (HTML, metin, Markdown, XML, YAML, ikili, JSON, JSONP, Protokol Buffers, MessagePack, içerik pazarlığı, akış, sunucu-tarafı olaylar vb.)
  • Yanıt sıkıştırma (gzip, deflate, brotli, snappy, s2)
  • Zengin istekler (URL sorgusunu bağlama, başlıklar, formlar, metin, XML, YAML, ikili, JSON, doğrulama, Protokol Buffers, MessagePack, vb.)
  • Bağımlılık enjeksiyonu (MVC, işleyiciler, API yönlendiricileri)
  • Test paketi

Demo

package main

// Paketleri içe aktarın
import "github.com/kataras/iris/v12"

func main() {
  // Iris örneğini tanımla
  app := iris.New()
  // gzip sıkıştırma ara yazılımını kullan
  app.Use(iris.Compression)

  // Yönlendirici kurulumu
  app.Get("/", func(ctx iris.Context) {
    ctx.HTML("Merhaba <strong>%s</strong>!", "Dünya")
  })

  // Port üzerinde dinle
  app.Listen(":8080")
}

Performans Testi

Dinamik parametrelerle 200.000 istek gönderin, istek gövdesi olarak JSON gönderin ve yanıt olarak JSON alın.

Çatı Geliştirme Dili Saniyede İstek Gecikme Kapasite Tamamlanma Süresi
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