Iris adalah kerangka aplikasi web Golang yang cepat, sederhana namun lengkap, dan sangat efisien.

Iris menyediakan dasar yang ekspresif dan mudah digunakan untuk situs web atau antarmuka aplikasi Anda berikutnya.

Fitur-fitur Iris

  • HTTP/2 (push, bahkan data tersemat)
  • Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
  • Pengelompokan versi API
  • Model-View-Controller
  • Websockets
  • gRPC
  • HTTPS otomatis
  • Dukungan ngrok bawaan untuk membuat aplikasi Anda online dengan cara tercepat yang memungkinkan
  • Router unik dengan parameter jalur dinamis, mendukung tipe standar seperti :uuid, :string, :int, dan pembuatan router kustom
  • Kompresi
  • Mesin tampilan (HTML, Django, Handlebars, Pug/Jade, dll.)
  • Buat server file Anda sendiri dan host server WebDAV Anda sendiri
  • Penyimpanan cache
  • Lokalisasi (i18n, peta situs)
  • Sesi
  • Tanggapan kaya (HTML, teks, Markdown, XML, YAML, biner, JSON, JSONP, Protocol Buffers, MessagePack, negosiasi konten, stream, peristiwa yang dikirimkan oleh server, dll.)
  • Kompresi tanggapan (gzip, deflate, brotli, snappy, s2)
  • Permintaan kaya (ikat kueri URL, header, formulir, teks, XML, YAML, biner, JSON, validasi, Protocol Buffers, MessagePack, dll.)
  • Injeksi dependensi (MVC, handler, router API)
  • Suite pengujian

Demo

package main

// Impor paket
import "github.com/kataras/iris/v12"

func main() {
  // Tentukan contoh iris
  app := iris.New()
  // Gunakan middleware kompresi gzip
  app.Use(iris.Compression)

  // Persiapan router
  app.Get("/", func(ctx iris.Context) {
    ctx.HTML("Halo <strong>%s</strong>!", "Dunia")
  })

  // Dengarkan pada port
  app.Listen(":8080")
}

Uji Kinerja

Kirim 200.000 permintaan dengan parameter dinamis sebagai bilangan bulat, kirim JSON sebagai badan permintaan, dan terima JSON sebagai tanggapan.

Kerangka Kerja Bahasa Pengembangan Permintaan per Detik Latensi Kepadatan Waktu Penyelesaian
Iris Go 238.954 521,69us 64,15MB 0,84d
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