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 |